home *** CD-ROM | disk | FTP | other *** search
/ LSD Docs / LSD Docs.iso / FILEZ / lsdspr06.dms / lsdspr06.adf / sculpt4d_2.doc.pp / sculpt4d_2.doc
Text File  |  1990-09-07  |  202KB  |  4,470 lines

  1.                            Sculpt-Animate 4D- Part 2 
  2.  
  3.                                                                         6-9  
  4. The Selector tools 
  5.  
  6.     Many of the tools, commands and gadgets only work 
  7. with selected vertices, edges or faces.  We have already seen 
  8. a number of ways to select and deselect vertices, but this 
  9. function is so important that additional ways to perform it 
  10. will always be welcome.  It would be nice, for instance, to 
  11. select small groups of vertices, in a slightly more wholesale 
  12. fashion than double-clicking allows. 
  13.  
  14.     There are two tools designed specifically for selecting 
  15. and deselecting vertices in this way.  If you issue the 
  16. command TOOLS SELECTOR, the cursor changes into a 
  17. yellow square.  This is the Selector Tool.  It represents a 
  18. cube that you can move around in three dimensions.  If you 
  19. pass the cube over a vertex it will become selected.  If this 
  20. does not seem to happen, it is because you are at the wrong 
  21. 'depth' in that window.  Remember that you can only locate 
  22. a point in two dimensions in any one window.  Look in one 
  23. of the other Tri-View windows to see where the cube is 
  24. really located. 
  25.  
  26.     You will quickly learn how to drag the Selector Tool 
  27. around in the Tri-View.  Just as the Tri-View is a box- 
  28. shaped 3D window that may be moved around in a larger 3D 
  29. space, the Selector Tool is a smaller box that moves around 
  30. within the Tri-View.  Any vertex that passes through this 
  31. box becomes selected. 
  32.  
  33.     You will notice that the Selector Tool is always the same 
  34. size in the Tri-View windows, just like the other tool 
  35. cursors.  By zooming in and out within the Contract and 
  36. Expand Tri-View gadgets, you make your objects larger and 
  37. smaller relative to the Selector tool, so it may be used to 
  38. select individual vertices or large parts of your objects. 
  39. When you have finished with the Selector Tool, click the 
  40. right mouse button to drop it. 
  41.  
  42.     While selection of vertices is very important, there are 
  43. likely to be times when you want to deselect one or several 
  44. vertices among many that are selected.  A tool to perform 
  45. this complementary function can be selected with the 
  46.  
  47.                                                                         6-10 
  48.  
  49. command TOOLS DESELECTOR.  This time the little cube 
  50. is purple and it deselects everything that passes through it. 
  51.  
  52. Duplicating Objects 
  53.  
  54.     Sometimes you will need several copies of the same 
  55. object.  The command EDIT ADD DUPLICATE, will cause 
  56. every selected vertex, edge and face to be duplicated.  The 
  57. duplicate is produced at exactly the same location at the 
  58. original, so it won't be visible.  If you use the Grabber to 
  59. move the original version (since it is selected), then the copy 
  60. will be revealed.  The copy is created in an unselected state. 
  61. You can use this command like a brush in a paint program, 
  62. to scatter duplicate objects wherever you please. 
  63.  
  64.     Of course, every additional copy of an object puts an 
  65. additional load upon memory and computation.  If you plan 
  66. to create several copies of an object, you will probably want 
  67. to make your prototype with as few vertices as possible. 
  68. Use smoothing, not vertices, to round out curved objects, 
  69. and remember that excessive detail will usually be lost to the 
  70. screen's resolution. 
  71.  
  72. Building mirror images 
  73.  
  74.     Some objects, like a glove, come in pairs.  As in the 
  75. case of a pair of gloves, paired objects are often mirror 
  76. images of each other.  If you had painstakingly built a model 
  77. of a left glove, you wouldn't want to build its mate by hand, 
  78. and you don't have to.  Sculpt Animate's REFLECT 
  79. command will build the mirror image of an object 
  80. automatically. 
  81.  
  82.     To use this facility, you must select all the vertices of the 
  83. object to be reflected.  Choose one window and position the 
  84. cursor in it, to the left of all the selected vertices.  The 
  85. imaginary plane of reflection will be vertical in the current 
  86. window and it will pass through the cursor position. 
  87.  
  88.                                                                         6-11 
  89.  
  90. Execute the command EDIT DO REFLECT, and a mirror 
  91. image will appear to the left of the cursor. 
  92.  
  93.     You may place the cursor, and hence the plane of 
  94. reflection, at any position in the window, but if a selected 
  95. vertex lies on the plane of reflection (or within a few pixels 
  96. of it), then that vertex will not be duplicated.  Rather, it will 
  97. be shared between the object and its reflection.  This provides 
  98. and easy way to construct closed objects that have a plane of 
  99. symmetry. 
  100.  
  101.     For example, a human head is approximately 
  102. symmetrical.  If you were to build the left half of a head, you 
  103. would only need to construct one eye, one ear and half a 
  104. nose and half a mouth.  You would have to take care that all 
  105. the vertices that are supposed to lie on the center plane do so 
  106. exactly.  To check this, see that they like in a straight line in 
  107. one of the windows.  If you select this window and position 
  108. the cursor on this line, then the reflect operation will 
  109. construct a complete head, with the halves 'stitched' 
  110. together. 
  111.  
  112. Multiple use of the extrude tool 
  113.  
  114.     The extrude tool was described in the last chapter, but it 
  115. can be used in conjunction with other tools to build many 
  116. different shapes besides simple cookie cutter slabs. 
  117.  
  118.     Suppose you wished to build a cylinder with a rounded 
  119. 45 degree bend, perhaps a model for some plumbing fixture. 
  120. Before you do anything else, clear the Tri-View with EDIT 
  121. ERASE ALL.  The first construction step is to click on the 
  122. north window and construct a circle using EDIT ADD 
  123. CIRCLE.  Now move to the west window and expand the 
  124. Tri-View about three times, then select all the vertices. 
  125. Move the cursor to the bottom left corner of the west 
  126. window and execute the menu command TOOLS 
  127. EXTRUDE.  Move the cursor straight across the west 
  128. window, to the middle of its bottom edge.  This will drag 
  129. out an extrusion of the circle, making a cylinder.  Press the 
  130. right mouse button to disengage the Grabber. 
  131.  
  132.                                                                         6-12 
  133.  
  134.     Move the Tri-View to the north so that the selected 
  135. vertices lie near the left side of the west window, three clicks 
  136. on the move Tri-View gadget should be about right.  Now 
  137. position the cursor directly below the selected vertices at a 
  138. distance about equal to half the diameter of the cylinder. 
  139. This point will be the center of the curvature of the curved 
  140. portion of the bend.  Execute the TOOLS EXTRUDE 
  141. command and immediately click on the clockwise rotation 
  142. gadget in the west window.  Repeat this sequence of 
  143. extrusion and rotation eight more times and you will have 
  144. completed a uniform 45 degree radiused bend.  Now all that 
  145. remains is to extend the pipe at the end of the bend.  You 
  146. could use the extrude tool again and extend it in a freehand 
  147. manner. 
  148.  
  149.     A more accurate way to extend the pipe would be to use 
  150. the edge of the Tri-View as a guide, but to do that we must 
  151. first rotate the whole object by 45 degrees.  Make sure the 
  152. Grabber is turned off and click on the clockwise rotation 
  153. gadget while holding down the right Amiga key.  Only some 
  154. of the pipe's vertices are selected, though, so its edges will 
  155. be tangled horribly.  Don't worry, though, we have made an 
  156. intentional mistake to illustrate something.  All is not lost, 
  157. you just have to rotate the unselected vertices and all will be 
  158. correct.  To do this, select the command EDIT SELECT 
  159. SWAP, then you can rotate the rest of the object clockwise 
  160. by 45 degrees in the same way, holding down the right 
  161. Amiga key. 
  162.  
  163.     Now that all's well, use EDIT SELECT SWAP to switch 
  164. the selection back to the end of the pipe.  The selected end 
  165. should now be lying in the horizontal plane.  To complete 
  166. the object the pipe must be extruded downwards.  To do this 
  167. while using the edge of the Tri-View as a guide, place the 
  168. cursor on the right side of the west window near the top and 
  169. execute the command TOOLS EXTRUDE.  Drag the cursor 
  170. down the right hand edge of the window and then turn off 
  171. the grabber.  Finally, select all and use MODIFY FACES to 
  172. invoke smoothing, call up a lamp, position the observer and 
  173. target, and create a snapshot of your masterpiece! 
  174.  
  175.                                                                         6-13 
  176.  
  177. The unslice operation 
  178.  
  179.     Using the tools that we have described, there is hardly 
  180. any regular shape that you cannot build with precision and 
  181. ease.  The world is full of irregular shapes, though.  Unless 
  182. you wish to construct them one vertex at a time, you need a 
  183. way to build them more easily.  One very useful method, 
  184. that's often used in the 'real' world, is to join together a 
  185. number of 'formers' that describe an object's outline at 
  186. various locations along its length, as though stacking sliced 
  187. bread.  Common examples are airplane fuselages, canoes, 
  188. and the human ribcage. 
  189.  
  190.     In the Sculpt universe, it's fairly easy to build such 
  191. formers.  They can be constructed in 2D in a single window, 
  192. using the Curve Tool, etc.  Once you have the formers built, 
  193. however, they need to be joined together.  Sculpt Animate 
  194. provides the Unslice operation to let you assemble such 
  195. 'slices' into a solid shape. 
  196.  
  197.     For the command to work, each slice must be a single 
  198. closed loop and all the slices must lie in parallel planes. 
  199.  
  200.     To achieve this, construct your first slice in a single 
  201. window, using the CURVE tool.  After each loop is drawn, 
  202. go to another window and move the cursor to the position of 
  203. the next slice.  Then go back to the first window to draw the 
  204. next loop.  It is important to get the correct spacing between 
  205. slices, as well as getting the correct shape for each loop. 
  206.  
  207.     If you resize the Tri-View windows so that the view you 
  208. work in is large and the other two are very narrow, you can 
  209. easily concentrate on a single slice.  You may want to 
  210. expand the Tri-View every now and then, though, and look 
  211. down the length of your object to see that all the formers are 
  212. lined up correctly. 
  213.  
  214.     As always, save your work periodically.  Once you have 
  215. completed a set of slices, save them in a special file before 
  216. invoking the Unslice command.  Keep this file for later. 
  217. You will usually find it easier to edit the slices, if necessary, 
  218. than to alter the complicated object. 
  219.  
  220.                                                                         6-14 
  221.  
  222.     Make sure all the vertices that make up the slices are 
  223. selected, and that no other vertices are selected.  Execute the 
  224. command EDIT DO UNSLICE.  After a period of 
  225. calculation, the loops will be joined together by edges, 
  226. creating a single surface.  If the end slices are triangles, then 
  227. the surface will be closed. 
  228.  
  229.     There is no unique way to link the loops, so the unslice 
  230. command uses a heuristic approach to tackle the problem. 
  231. Do not be surprised if the solid that it generates differs from 
  232. the one you anticipated.  Adding additional slices, so that 
  233. one slice is not too different from the next, will serve to 
  234. define the shape with more precision. 
  235.  
  236.     The REFLECT operation can often be paired with the 
  237. UNSLICE operation.  Sometimes the REFLECT will be 
  238. performed first, and at other times it is best to do the 
  239. UNSLICE first.  In either case the idea is to create either a 
  240. half set of loops (like half a loaf of bread) or a set of half 
  241. loops (a loaf cut down the middle).  Again, save these 
  242. curves before constructing the full object.  You will probably 
  243. wish to make changes after you have seen the complete 
  244. object, and the bare profiles are valuable for this. 
  245.  
  246. Hiding objects in the Tri-View 
  247.  
  248.     You may have already created some scenes in Sculpt 
  249. Animate that tax the speed of the Amiga's processor.  With 
  250. complex scenes, it can take several seconds to refresh the 
  251. Tri-View whenever you perform an operation.  This aside, 
  252. the Tri-View can simply become cluttered with a lot of detail 
  253. that you may not need at a given time.  There will likely be 
  254. times when you wish parts of the scene would just be told to 
  255. 'go away' for a while.  Fortunately, you can do this very 
  256. thing.  The command EDIT DO HIDE SELECTED 
  257. VERTICES will cause all selected vertices to disappear from 
  258. view. 
  259.  
  260.     Hidden vertices will not take part in any Tri-View 
  261. operation, and do not require any processor time when the 
  262. screen is refreshed.  Hidden vertices, do remain in memory, 
  263.  
  264.                                                                         6-15 
  265.  
  266. however, occupying RAM.  You may hide part of you 
  267. scene at one time, then later hide some more.  Any edges or 
  268. faces that are built upon a hidden vertex will also be hidden. 
  269.  
  270.     When you save a scene, hidden objects will be saved if 
  271. the 'Which?' item in the 'Save what?' requester is set to 
  272. ALL.  If this item is set to SELECTED, or if you use SAVE 
  273. OBJECT, the hidden vertices will not be saved.  This is 
  274. because hidden vertices cannot be selected. 
  275.  
  276.     When you want to get the hidden vertices back, use the 
  277. command EDIT DO REVEAL HIDDEN VERTICES. 
  278.  
  279. Creating more complicated objects 
  280.  
  281.     So far, you have created a number of different objects, 
  282. and seen how even more objects can be created.  Still, we 
  283. have been dealing with relatively simple shapes.  There is a 
  284. reason for this: the majority of complex objects in the real 
  285. world are actually collections of simple shapes.  This may 
  286. seem obvious, but it deserves special comment because it 
  287. makes life so much easier.  It's better to build a house, for 
  288. instance, by creating the parts individually and putting them 
  289. together, than it is to construct it all in one piece.  The key to 
  290. successfully modelling a complex object is breaking it down 
  291. into constituent parts that can be easily dealt with. 
  292.  
  293.     You might wonder just how to 'put the parts together'. 
  294. This depends on what you will be using the completed object 
  295. for.  It would be rather difficult, and in most cases 
  296. unnecessary, to join individual parts of an object 
  297. 'physically'--trying to make them into a single piece by 
  298. carefully constructing interconnecting faces and edges.  If 
  299. two objects are close enough together in the scene that you 
  300. can't see a separation in the rendered image, they are 
  301. 'connected' well enough. 
  302.  
  303.     If you prefer, it's usually all right to let the faces of one 
  304. part intersect with those of another, so long as it does no 
  305. harm for a part to protrude through on the other side.  Sculpt 
  306. Animate will sort out intersecting faces for you. 
  307.  
  308.                                                                         6-16 
  309.  
  310.     On the other hand, there are some good reasons to tie 
  311. certain objects together more securely.  For instance, you 
  312. may want to be able to select the whole object with a single 
  313. SELECT CONNECTED command.  To connect parts in this 
  314. way, just use the EDGE MAKER tool or gadget create a 
  315. single edge, tying the two objects together.  A single edge 
  316. between two otherwise unconnected objects cannot make a 
  317. face, so the new edge will not be visible except in WIRE 
  318. FRAME mode. 
  319.  
  320.     In chapter 9, you will learn a way to combine objects 
  321. 'logically', giving parts of objects names combined in a 
  322. hierarchy. 
  323.  
  324.     As you design models, you should take care that you 
  325. choose an appropriate level of complexity.  In Sculpt 
  326. Animate, it is possible to model objects to a ridiculous level 
  327. of detail.  Given enough RAM, you could put every scupper 
  328. on the hull of an aircraft carrier, or place every scale on the 
  329. wings of a butterfly, but such detail would never be seen in 
  330. the finished product.  To include it wastes time in rendering 
  331. as well as construction, and may make the scene to large to 
  332. render in available RAM. 
  333.  
  334.     As you look at an object you want to model, think of 
  335. each part in terms of how you could create it.  An airplane 
  336. will have wings, a tail section, a fuselage, etc.  Each part 
  337. may itself be composed of several parts as well--the tail will 
  338. have a rudder and stabilizer, the fuselage will have a cockpit 
  339. and engine compartment.  At each level of detail, decide 
  340. whether an item will make any difference in the finished 
  341. image.  You will eventually learn where to draw the line. 
  342.  
  343.     As you construct the parts, think of each one in terms of 
  344. how it resembles EDIT ADD objects, or objects you have 
  345. built before.  Objects will often have several parts that are 
  346. identical; never create the same part twice if you don't have 
  347. to, that's what DUPLICATE and REFLECT are for.  By 
  348. thinking of a scene in terms of parts, you can dispense 
  349. with the 'easy' parts quickly, and concentrate on the parts 
  350. that aren't so easy. 
  351.  
  352.                                                                         6-17 
  353.  
  354.     Most of the time, you'll find that the 'hard' parts aren't 
  355. that hard after all.  The primary reason that a new shape 
  356. looks hard is that you haven't done anything like it before. 
  357. The best defense against this is to thoroughly familiarize 
  358. yourself with the tools and commands that we have 
  359. discussed, and the kind of shapes they can create. 
  360.  
  361.     Remember that once you have achieved a basic shape, 
  362. there are still any number of ways to transform it into the 
  363. object you want, by adding and deleting vertices, resizing, 
  364. spinning, etc.  Every new object you create will open up a 
  365. whole new range of possibilities. 
  366.  
  367.                                                                         6-18 
  368.  
  369.                                 CHAPTER 7 
  370.  
  371.                                 THE WORLD 
  372.  
  373.     This chapter discusses the world in which Sculpt 
  374. Animate objects reside.  Facilities are described for lighting a 
  375. scene and providing a ground and sky. 
  376.  
  377. Creating lamps 
  378.  
  379.     The shadows, highlights, and subtle nuances of shading 
  380. that give Sculpt Animate images a sense of reality depend 
  381. upon the illumination of the scene.  In chapter 2, we 
  382. introduced the EDIT ADD LAMP command, which placed a 
  383. lamp at the current cursor position.  The lamp is depicted in 
  384. the Tri-View as a white star. 
  385.  
  386.     There is virtually no limit to the number of lamps that can 
  387. be created, but since each additional lamp increases the 
  388. amount of computation required to generate an image, it is 
  389. wise to try to use as few as possible.  It's a happy 
  390. coincidence that scenes with fewer lamps tend to look better, 
  391. too. 
  392.  
  393.     For dramatic results, you can employ colored lighting. 
  394. In order to create a colored lamp, you must first use the 
  395. EDIT MODIFY LAMPS command.  This command calls up 
  396. a requester similar to the one you used to modify the color of 
  397. faces.  Set the sliders to pick the color that you desire.  There 
  398. is no need to dim the light with the value slider.  Instead you 
  399. can enter a number into the lamp brightness box. 
  400.  
  401.     The brightness value given to a lamp set its effect 
  402. relative to other lamps in the same scene.  If you like, you 
  403. can think of this number as the wattage of the lamp, although 
  404. the lamp's 'absolute' brightness is irrelevant.  As we have 
  405. seen, Sculpt Animate employs an automatic exposure 
  406. technique in creating images, and its range of sensitivity is 
  407. extremely large.  For instance, a single ten-'Watt' lamp in a 
  408. given scene should yield the same image as a single 
  409. thousand-'Watt' lamp.  If both lamps were in the same 
  410.  
  411.                                                                         7-1 
  412.  
  413. scene, however, the ten-Watt lamp wouldn't have much 
  414. effect.  In either case, you shouldn't have to worry about the 
  415. overall brightness of the image. 
  416.  
  417.     If you have used the MODIFY LAMPS requester to 
  418. change the current lamp color or brightness, then any new 
  419. lamps that are created with the EDIT ADD LAMP command 
  420. will have the new properties.  If you indicate a lamp with the 
  421. cursor before calling up the requester, you can use the two 
  422. SET buttons to change either the color or brightness of the 
  423. indicated lamp.  If you wish to reset the properties of all the 
  424. lamps in the scene, click on the button in the box titled 
  425. WHICH LAMP, and the button will toggle between 
  426. INDICATED and ALL. 
  427.  
  428.     You can use the two sets of FETCH and BLEND 
  429. buttons, as appropriate, to fetch or blend lamp colors and 
  430. brightness, much as you did with the colors of faces. 
  431.  
  432.     In Sculpt Animate, as in the real world, the brightness of 
  433. a lamp falls off according to the inverse square law.  This 
  434. means that if you quadruple your distance from the light, the 
  435. intensity falls to one sixteenth of its original value.  Sculpt 
  436. Animate's automatic exposure tries to find the best exposure 
  437. for the most brightly lit object, so if you place a lamp close 
  438. to an object, more distant parts of the scene may be very 
  439. dimly lit.  Try to avoid placing lamps much closer to one 
  440. object than to others, unless you want to create some special 
  441. effect.  For an even, overall light, like sunlight, place your 
  442. lamp five or ten times farther from the target than the 
  443. observer's location. 
  444.  
  445.     If you want to move a lamp, you may do so with the 
  446. Grabber tool described in chapter 4.  First, be sure that all 
  447. vertices in the scene are deselected, then indicate the desired 
  448. lamp and invoke the Grabber as usual. 
  449.  
  450.     Try to resist the temptation to add lamps if a scene seems 
  451. too dark.  The automatic exposure feature will compensate 
  452. for additional lamps, so they will usually not make a scene 
  453. brighter.  Instead, make sure the scene is lit evenly, with no 
  454. objects too near a lamp.  If you still want the scene lighter, 
  455.  
  456.                                                                         7-2 
  457.  
  458. use the OBSERVER EXPOSURE MANUAL setting to 
  459. brighten it. 
  460.  
  461.     To see the effect of various lighting arrangements, try 
  462. rendering a few SKETCH mode images of a test subject.  A 
  463. one-subdivision white sphere does nicely.  Start with a 
  464. single lamp at or near the observer's location, then render a 
  465. few images, moving the lamp around towards one side a 
  466. little each time, until the subject is entirely side-lit.  You will 
  467. see that the shading of the sphere becomes deeper and more 
  468. dramatic as the lighting becomes more oblique.  It is usually 
  469. good also to raise the main light up above the level of the 
  470. subject, raising its highlights. 
  471.  
  472.     As the obliqueness of the main light source increases, so 
  473. does the need for a second light--otherwise the shading 
  474. becomes too deep.  The second lamp, called a 'fill' light, 
  475. will usually be placed to the other side of the observer, 
  476. perhaps a little closer to the line of sight.  The fill light needs 
  477. to be dimmer.  While it is all right to reduce its 'wattage' 
  478. with the brightness setting, it may be easier to simply place it 
  479. a little farther away from the subject so you can see at a 
  480. glance which light has more effect. 
  481.  
  482.     When you are using PHOTO mode, you will often want 
  483. dramatic shadows to be cast on the ground (the 'ground' is 
  484. explained later in this chapter).  If the subject is on the 
  485. ground, this can often be achieved by placing a third light 
  486. source relatively high, and somewhat behind the subject. 
  487. This 'backlight' should usually be as bright as, or brighter 
  488. than, the main light.  If the subject is above the ground or the 
  489. main light is far enough to the side, then the shadows cast by 
  490. the main and fill lights may be enough.  In some cases the 
  491. 'main' light may be discarded, and only a backlight and fill 
  492. used. 
  493.  
  494.     These are not rules, by the way, just basic suggestions to 
  495. get you started.  The only rules when it comes to lighting 
  496. are use your imagination, try things out, and remember the 
  497. arrangements that please you. 
  498.  
  499.                                                                         7-3 
  500.  
  501. Illumination 
  502.  
  503.     Sculpt Animate employs a technique called low albedo 
  504. approximation when it generates an image.  This means that 
  505. any part of an object that is hidden from all light sources will 
  506. be totally dark.  Such objects will not pick up reflected light 
  507. from nearby illuminated objects.  In order to soften the 
  508. shadows, Sculpt Animate allows you to specify a diffuse 
  509. ambient illumination that is independent of the lamps that 
  510. you create. 
  511.  
  512.                 +---------------------------------------+ 
  513.                 |                                       | 
  514.                 |       BACKGROUND ILLUMINATION         | 
  515.                 |                                       | 
  516.                 |    +------------------------------+   | 
  517.                 |  R |    |>                        |   | 
  518.                 |    +------------------------------+   | 
  519.                 |    +------------------------------+   | 
  520.                 |  G |    |>                        |   | 
  521.                 |    +------------------------------+   | 
  522.                 |    +------------------------------+   | 
  523.                 |  B |    |>                        |   | 
  524.                 |    +------------------------------+   | 
  525.                 |    +------------------------------+   | 
  526.                 |  H ||>                            |   | 
  527.                 |    +------------------------------+   | 
  528.                 |    +------------------------------+   | 
  529.                 |  S ||>                            |   | 
  530.                 |    +------------------------------+   | 
  531.                 |    +------------------------------+   | 
  532.                 |  V |    |>                        |   | 
  533.                 |    +------------------------------+   | 
  534.                 |                                       | 
  535.                 |               +-------+               | 
  536.                 |               |       |               | 
  537.                 |               |       |               | 
  538.                 |               |       |               | 
  539.                 |               |       |               | 
  540.                 |  +--------+   |       |   +--------+  | 
  541.                 |  | CANCEL |   |       |   |   OK   |  | 
  542.                 |  +--------+   +-------+   +--------+  | 
  543.                 |                                       | 
  544.                 +---------------------------------------+ 
  545.  
  546.                         The Illumination Requester 
  547.  
  548.     You can change the amount of the illumination with the 
  549. command WORLD ILLUMINATION.  This brings up an 
  550. illumination color requester that you operate in the same way 
  551. as other color requesters.  Unlike the lamps, there is no 
  552. separate brightness facility for controlling the intensity of the 
  553. ambient illumination, so you must do this entirely with the 
  554. value (V) slider.  Usually the V slider should be set about 
  555. one quarter of the way from the left. 
  556.  
  557.                                                                         7-4 
  558.  
  559.     The illumination setting can sometimes be used in place 
  560. of fill lighting, but if the illumination value is set too high, 
  561. images will seem flat and lifeless.  Too small a value will 
  562. make shaded faces look unnaturally dark.  The default value 
  563. that is set at program start-up is a good all-around value. 
  564.  
  565. The sky 
  566.  
  567.     You will have noticed a blue background in the images 
  568. you have created so far.  This background, although it is 
  569. called the sky, need not be blue.  Execute the menu 
  570. command WORLD SKY and you will see a color requester 
  571. pop up.  The SKY requester is similar to the 
  572. ILLUMINATION requester, but it has a couple of extra 
  573. gadgets. 
  574.  
  575.     Unless it has been changed, the topmost gadget will 
  576. contain the word GRADUATED.  This gadget is a three-way 
  577. toggle.  Click on it a few times and watch it change from 
  578. GRADUATED to NONE, then to SOLID, repeating the 
  579. cycle as you continue to click. 
  580.  
  581.     If you leave this gadget set to NONE, there will be no 
  582. sky, and the background will be black.  Notice that the color 
  583. swatch shows black, despite the settings of the sliders. 
  584. Now select SOLID, and see that the swatch now reflects the 
  585. color set by the sliders.  If the sliders are moved, the swatch 
  586. changes color normally.  If you click OK and make an 
  587. image, then the background color will be the one that you 
  588. have selected. 
  589.  
  590.     Now select GRADUATED, and notice that an extra 
  591. border is added around part of the swatch's perimeter.  If the 
  592. border surrounds the top half of the swatch, the sliders only 
  593. change the color in that half.  Now click anywhere on the 
  594. swatch.  The border should jump from the top of the swatch 
  595. to the bottom, then vice versa if you click again.  This is a 
  596. special kind of toggle gadget.  By selecting which half of the 
  597. swatch is highlighted by the border, you can set up two 
  598. entirely different colors.  The upper color represents the sky 
  599.  
  600.                                                                         7-5 
  601.  
  602. color at the zenith, or directly overhead.  The lower color 
  603. represents the color at the horizon. 
  604.  
  605.     If you make a picture with a GRADUATED sky and use 
  606. SNAPSHOT or PHOTO mode, the sky color will blend 
  607. smoothly between the ones that you have selected.  In 
  608. PAINTING and SKETCH mode, the color of the sky will 
  609. be the zenith color. 
  610.  
  611.     As we have said, a GRADUATED sky blends the two 
  612. selected colors into each other.  In fact, some blending might 
  613. actually occur if you were to set the two colors to the same 
  614. value.  This is because the color sliders are more accurate 
  615. than the color resolution of the Amiga.  If the slider setting 
  616. falls between two usable values, Sculpt Animate 'dithers' the 
  617. colors to simulate the correct shade. 
  618.  
  619.     Because a GRADUATED sky must be dithered anyway, 
  620. this should cause no problem.  If you select SOLID sky, 
  621. however, it will be assumed that you want no dithering, and 
  622. the closest available 'pure' color will be used for the whole 
  623. sky. 
  624.  
  625. The ground 
  626.  
  627.     If you wish to depict a scene in which objects are not 
  628. floating freely in space, but are sitting on or suspended near 
  629. the ground, then you must make a model of the ground. 
  630.  
  631.     If the ground is to be flat, then a single triangular face 
  632. could be employed.  If it is a few hundred times bigger than 
  633. the scale of the other objects, it will seem to stretch off to 
  634. infinity.  This sort of ground has some disadvantages: for 
  635. one thing, there is the bother of constructing and placing the 
  636. ground; for another, this type of ground will often obscure 
  637. your objects in the SKETCH rendering mode (see imaging 
  638. modes, chapter 3). 
  639.  
  640.     As a simpler alternative, you can use the ground plane 
  641. that is built into Sculpt Animate.  To use it, execute the 
  642. command WORLD GROUND.  A color requester will be 
  643.  
  644.                                                                         7-6 
  645.  
  646. invoked.  Like the sky color requester, it has a ground type 
  647. gadget near the top right.  By clicking on it, it can be 
  648. toggled between NONE, SOLID and CHECKERED. 
  649.  
  650.     If NONE is selected, then no ground is produced. 
  651. Otherwise an infinite ground plane is generated that passes 
  652. through the Origin.  The Origin is the center of the Sculpt 
  653. Animate universe, and it is where the observer target is 
  654. initially placed.  If ground exists and it passes through the 
  655. Tri-View, it is displayed as a horizontal line in two of the 
  656. windows.  If you enable the ground but can't see it in a Tri- 
  657. View window, it is because the Tri-View 'box' is too far 
  658. above or below ground level.  Try expanding the Tri-View 
  659. until the ground comes into view. 
  660.  
  661.                 +---------------------------------------+ 
  662.                 |               +-----------+ +-----+   | 
  663.                 |  GROUND TYPE: | CHECKERED | |.:.:.|   | 
  664.                 |               +-----------+ +-----+   | 
  665.                 |    +------------------------------+   | 
  666.                 |  R |    |>                        |   | 
  667.                 |    +------------------------------+   | 
  668.                 |    +------------------------------+   | 
  669.                 |  G |    |>                        |   | 
  670.                 |    +------------------------------+   | 
  671.                 |    +------------------------------+   | 
  672.                 |  B |    |>                        |   | 
  673.                 |    +------------------------------+   | 
  674.                 |    +------------------------------+   | 
  675.                 |  H ||>                            |   | 
  676.                 |    +------------------------------+   | 
  677.                 |    +------------------------------+   | 
  678.                 |  S ||>                            |   | 
  679.                 |    +------------------------------+   | 
  680.                 |    +------------------------------+   | 
  681.                 |  V |    |>                        |   | 
  682.                 |    +------------------------------+   | 
  683.                 |                                       | 
  684.                 |               +-------+               | 
  685.                 |               |       |               | 
  686.                 |               |       |               | 
  687.                 |               |       |               | 
  688.                 |               |       |               | 
  689.                 |  +--------+   |       |   +--------+  | 
  690.                 |  | CANCEL |   |       |   |   OK   |  | 
  691.                 |  +--------+   +-------+   +--------+  | 
  692.                 |                                       | 
  693.                 +---------------------------------------+ 
  694.  
  695.                         The GROUND Requester 
  696.  
  697.     If you select a SOLID ground, then it will be uniformly 
  698. colored and you can use the sliders to pick a color.  If you 
  699. select CHECKERED, then the swatch divides into two and 
  700. you can select two colors, just as you did for the sky.  A 
  701. checkered ground plane is one where alternate squares on 
  702. the ground are different colors, like the squares on a chess 
  703.  
  704.                                                                         7-7 
  705.  
  706. board.  The ground will only be checkered in the HAM 
  707. imaging modes.  In the other solid modeling modes, the 
  708. ground will be the color of the top-half of the color swatch. 
  709.  
  710.     The size of the square can be specified by clicking on 
  711. the small checkered icon just to the right of the word 
  712. CHECKERED.  This sets the size of each square to be the 
  713. same as the maximum dimension of the current Tri-View 
  714. 'box'.  For instance, if you click this gadget when the Tri- 
  715. view is sized so that only a small portion of your object is 
  716. visible, then the checkers will be small in comparison to 
  717. your object.  If the object looks small in the Tri-View when 
  718. you click the gadget, then the checkers will be very large 
  719. relative to your object. 
  720.  
  721.     In case you need to know, the center four-square of the 
  722. checker pattern will always be centered on the Origin.  The 
  723. top half of the color swatch will be used for the northwest 
  724. and southeast squares of this center block, the bottom half 
  725. for the northeast and southwest squares. 
  726.  
  727.     Although a checkered ground plane has become 
  728. something of a cliche in computer generated images, it does 
  729. give the image more depth, and enhances the illusion that the 
  730. ground extends to infinity.  In addition, it adds interest to 
  731. scenes that contain mirrored objects, for the reflections of 
  732. the checkered ground make it easier for the eye an brain to 
  733. perceive the shape of a mirrored object. 
  734.  
  735.     You can stretch the usefulness of a checkered ground 
  736. with a little creativity.  A red-and white checkerboard with 
  737. fairly small squares can look like a tablecloth, especially if 
  738. the observer is looking downwards.  Enormous squares 
  739. done in two earth-tone colors can suggest an agrarian plain. 
  740. Additional features, such as hills, etc., can be added as 
  741. objects placed in the background. 
  742.  
  743.     When you use a checkerboard, it is often best to keep the 
  744. lamps fairly close to the subject, not much farther than the 
  745. observer.  This tends to darken the ground in the distance, 
  746. reducing odd effects that can occur where the checker 
  747. squares become very small.  On the other hand, sometimes it 
  748.  
  749.                                                                         7-8 
  750.  
  751. can add balance and interest to an image to place an extra 
  752. lamp off in the background, illuminating a patch of the 
  753. checkerboard where there would otherwise be an unbalanced 
  754. empty space. 
  755.  
  756.                                                                         7-9 
  757.  
  758.                                 CHAPTER 8 
  759.  
  760.                                  SPLINES 
  761.  
  762.     Earlier we showed you how to create basic curves in 
  763. Sculpt Animate by placing individual vertices.  This chapter 
  764. describes a way by which you can take such a curve, 
  765. roughly sketched, and easily transform it into smooth, 
  766. sweeping curves.  With a few mouse clicks you will be able 
  767. to construct convincing profiles for aircraft and boats. 
  768. Curves generated this way can be modified and controlled 
  769. interactively. 
  770.  
  771. Splines and knots 
  772.  
  773.     Splines provide a way of creating and manipulating 
  774. smooth curves.  In the days before computers, when a 
  775. designer wished to generate a smooth curve, he used a thin 
  776. strip of wood (or metal or plastic) and bent it to produce the 
  777. desired shape.  The strip was called a spline.  Usually, the 
  778. designer would mark a few points, called knots, on his 
  779. paper, and bend the spline so that it passed through the 
  780. knots.  The spline defines the shape of the curve between 
  781. the knots. 
  782.  
  783.     A mathematical simulation of a spline requires a little 
  784. calculus, but all the messy details can be left to the 
  785. computer.  Sculpt Animate only needs three commands to 
  786. work with splines: one command to make splines, one to 
  787. modify them, and one to erase them.  Although splines are 
  788. very simple to use, there are some rules that must be 
  789. followed, and since they are not at all obvious, you should 
  790. study the next section quite carefully. 
  791.  
  792.     As we have seen, a curve may be represented by a 
  793. sequence of vertices that are joined by edges.  They are not 
  794. really curved at all, they are just a sequence of straight lines 
  795. segments.  If you use many segments, the approximation to 
  796. a true curve becomes quite good.  The curve tool can be 
  797.  
  798.                                                                         8-1 
  799.  
  800. used to construct a sequence of edges, or the sequence can 
  801. be built in a number of other ways using facilities we have 
  802. already seen. 
  803.  
  804.     Having constructed a curve, you can make it a spline, 
  805. but first you must tell Sculpt Animate which vertices are to 
  806. become knots.  To do this, be sure that all other vertices in 
  807. the scene are deselected, then select a few vertices along the 
  808. curve you are working with.  The vertices you select will 
  809. usually be key locations along the curve--points that you 
  810. either don't want to move, or that you want adjacent vertices 
  811. to follow. 
  812.  
  813.     Make sure that you have several unselected vertices 
  814. between adjacent selected vertices.  When the selected 
  815. vertices become knots, the unselected ones will 'snap' into a 
  816. smooth curve, and afterwards follow the knots wherever 
  817. they go. 
  818.  
  819.     Now execute the EDIT DO MAKE SPLINE command. 
  820. If you have done everything correctly, the command will 
  821. subtly alter the curve you have laid out.  If a warning 
  822. message appears, you have probably selected vertices that do 
  823. not all lie on a single, unbroken curve.  If this happens no 
  824. other actions will be taken, so you can try again. 
  825.  
  826.     If the spline command succeeds, the unselected vertices 
  827. on the spline curve will be re-aligned so they lie on a smooth 
  828. curve which passes through the knots, which should not 
  829. move.  Each knot will have a small arrow drawn on the 
  830. edges that connect to it.  This identifies the vertex as a knot, 
  831. even if it is not selected. 
  832.  
  833.     By making the curve a spline, you have given it a 
  834. property of smoothness.  Until the spline is erased, anything 
  835. that you do with this curve will result in a smooth, flowing 
  836. transition from one knot to the next.  There is more than one 
  837. way to draw a curve through a set of points, so the spline 
  838. command picks one that follows a simple mathematical 
  839. formula.  You can exert quite a lot of influence over the 
  840. curve, though, if you do not like the one that was chosen for 
  841. you. 
  842.  
  843.                                                                         8-2 
  844.  
  845.     Let's try manipulating the spline some.  Deselect all but 
  846. one knot and use the grabber gadget to move the knot.  If 
  847. you watch closely, you will notice that the other knots do not 
  848. move, but the non-knot vertices between the moving knot 
  849. and the adjacent knots move so as to always lie on a smooth 
  850. curve.  Deselect the knot and select a non-knot vertex.  Now 
  851. try to move the vertex with the grabber tool and you will see 
  852. that the grabber has no effect on a non-knot vertex of a 
  853. spline.  This is because the position of a non-knot vertex is 
  854. solely determined by the positions of neighboring knots. 
  855.  
  856.     This is one of the exceptions to the rule that only selected 
  857. vertices may be manipulated in Sculpt Animate.  In this case, 
  858. non-knot vertices, selected or not, may only be manipulated 
  859. by working with adjacent knots. 
  860.  
  861.     Moving knots is the most fundamental way to manipulate 
  862. a spline.  Note that the spline does not have to lie in one 
  863. plane.  To see this, go to another Tri-View window and 
  864. move a knot.  you will see the spline twist into a third 
  865. dimension.  In Sculpt Animate, a spline is more like a piece 
  866. of wire than a curve drawn on a flat surface.  By 
  867. moving the knots, the spline can be bent into almost any 
  868. shape. 
  869.  
  870.     There is one tricky part to manipulating a spline this 
  871. way.  If the spline is very smooth (that is, if it has a lot of 
  872. non-knot vertices), then it may be hard to select a knot by 
  873. itself without contracting the Tri-View to 'zoom in' on it. 
  874. Fortunately, this isn't necessary.  As long as you've selected 
  875. the one knot you want, selected non-knot vertices will just 
  876. follow along as usual.  This means you can use the Selector 
  877. tool to 'shotgun select' several vertices in the neighborhood 
  878. of the knot you want. 
  879.  
  880. Slope and speed 
  881.  
  882.     The exact shape of the spline between two knots is 
  883. determined by four parameters, two for each knot.  One pair 
  884. of parameters is called the slope and the other pair is called 
  885. the speed.  The slope at the knot is just the direction of the 
  886.  
  887.                                                                         8-3 
  888.  
  889. curve in the vicinity of the knot, in mathematics, this 
  890. direction is called the tangent.  Unless you take special 
  891. action, Sculpt Animate calculates a reasonable slope based 
  892. on the positions of the knots on either side 
  893.  
  894.     To see how this works, do an ERASE ALL to clear the 
  895. Tri-View, and draw a curve with a dozen or so vertices. 
  896. Deselect them all and then select the two end vertices.  Make 
  897. a spline, as described above.  All the non-knot vertices will 
  898. align themselves uniformly between the knots.  With only 
  899. two knots, there is no information about the shape of the 
  900. curve that you would like, so Sculpt Animate generates the 
  901. simplest possible curve between the knots--a straight line. 
  902.  
  903.         +--------------------------------------+ 
  904.         |======================================| 
  905.         +--------------------------------------| 
  906.         |               MODIFY KNOT            | 
  907.         |                                      | 
  908.         |              +----------+            | 
  909.         |   Knot type: |  REGULAR |            | 
  910.         |              +----------+            | 
  911.         |              +----------+            | 
  912.         |   Side:      |  INWARD  |            | 
  913.         |              +----------+            | 
  914.         |              +----------+            | 
  915.         |   Slope:     |CALCULATED|            | 
  916.         |              +----------+            | 
  917.         |                                      | 
  918.         |                                      | 
  919.         |                SPEED                 | 
  920.         | +----------------------------------+ | 
  921.         | |                ||                | | 
  922.         | +----------------------------------+ | 
  923.         |                                      | 
  924.         |   +--------+            +--------+   | 
  925.         |   | CANCEL |            |   OK   |   | 
  926.         |   +--------+            +--------+   | 
  927.         |                                      | 
  928.         +--------------------------------------+ 
  929.  
  930.                 The Modify Knot Requester 
  931.  
  932.     Now move the cursor to one of the knots and execute the 
  933. menu command EDIT MODIFY INDICATED KNOT.  A 
  934. requester with the title MODIFY KNOT will pop up.  The 
  935. requester has a drag bar, so you can move it out of the way 
  936. if it hides the spline you are working on.  In the requester, 
  937. you should see a gadget marked CALCULATED, beside the 
  938. title 'Slope:'.  Click on this gadget, and it will toggle 
  939.  
  940.                                                                         8-4 
  941.  
  942. between CALCULATED and SPECIFIED.  Leave the 
  943. gadget in the SPECIFIED state, and notice that a yellow 
  944. arrow has now been drawn at the position of the knot. 
  945.  
  946.     The rotate gadgets in each window now have a special 
  947. purpose.  Instead of rotating selected vertices, they rotate the 
  948. yellow arrow, which represents the slope of the knot. 
  949. Rotate the arrow and notice that the curve between the knots 
  950. deforms so that its tangent always matches the slope of the 
  951. knot. 
  952.  
  953.     By switching to another Tri-View window, and using 
  954. the rotate gadgets, you can point the slope in any direction 
  955. and the curve will follow.  If you click the slope gadget, so 
  956. that it is in the CALCULATED state, the curve will snap 
  957. back to correspond to the slope calculated from the positions 
  958. of the nearby knots.  The slope that you constructed is still 
  959. remembered for the time being, in case you wish to return 
  960. the knot to its SPECIFIED state later in this session.  Only 
  961. SPECIFIED knot states are saved with the scene, though. 
  962.  
  963.     When we manipulate a knot's slope, it is as though we 
  964. were twisting a draftsman's wooden spline at one of the 
  965. knots.  Real splines would not long survive such treatment, 
  966. nor do real draftsmen have surplus hands to apple torque at 
  967. each knot, so our mathematical spline has creative 
  968. advantages over its real-world counterpart. 
  969.  
  970.     The other control that you have over a knot is its 'speed'. 
  971. This is set by the slider control near the bottom of the 
  972. MODIFY KNOT requester.  To best understand how this 
  973. parameter works, specify the slope of the knot you've been 
  974. working with so it's at an angle of about 45 degrees to the 
  975. line between the knots.  Now just move the speed slider and 
  976. see what happens.  Each time you release the slider knob, 
  977. the spline will be re-drawn. 
  978.  
  979.     With large values of speed, the spline will seem to shoot 
  980. out a long way before being influenced by the other knot. 
  981. Small values of speed will cause the spline to quickly 
  982. forget about its initial slope and move towards the other 
  983. knot.  Also notice that the non-knot vertices get farther apart 
  984. as the speed increases, and closer together as it decreases. 
  985.  
  986.                                                                         8-5 
  987.  
  988.     When you have finished manipulating the knot, you can 
  989. either click on the OK gadget to accept its new settings, or 
  990. click the CANCEL gadget to undo your manipulations.  In 
  991. either case, the requester will vanish, and the rotate gadgets 
  992. will resume their normal operation. 
  993.  
  994.     If you make a spline with several knots and set the speed 
  995. parameter for each knot to zero (the leftmost position for 
  996. each slider).  Then the non-knot vertices will move to lie on 
  997. straight line segments between the knots.  Try it.  Although 
  998. splines are usually thought of as smooth curves, they can be 
  999. made quite angular. 
  1000.  
  1001.     Now go back and set the speed for each knot to its 
  1002. maximum value, and you will see that the spline shoots 
  1003. away from each knot with such force that it may even 
  1004. perform a loop before returning to the next knot.  Quite 
  1005. baroque curves can be constructed in this way.  Remember 
  1006. what they look like, you never know when they might be 
  1007. needed. 
  1008.  
  1009.     We can compute this operation to the use of a wooden 
  1010. spline.  Increasing the speed at a knot is like making the 
  1011. spline stiffer at that point, while reducing the speed softens 
  1012. the spline locally.  Our simulated spline has far outstripped 
  1013. the abilities of any real spline. 
  1014.  
  1015.     Although it is tempting to scatter many knots throughout 
  1016. a curve, the power of Sculpt Animate's splines is best 
  1017. realized if you use very few knots.  If you go back to the 
  1018. example spline with only two knots, you will find that many 
  1019. very graceful curves can be created simply by adjusting their 
  1020. speeds and slopes. 
  1021.  
  1022.     In chapter 10 we will see how any 3D curve, including 
  1023. spline curves, may be used as a path to describe motion.  In 
  1024. this use, each vertex of the curve represents a location in 
  1025. time and space.  The 'speed' of an object following the curve 
  1026. will be directly proportional to the distance between vertices. 
  1027.  
  1028.     You should remember that this interpretation of the word 
  1029. 'speed' differs slightly from the 'speed' of a knot.  While it 
  1030. is true that increasing a knot's speed generally moves the 
  1031.  
  1032.                                                                         8-6 
  1033.  
  1034. adjacent vertices apart, the effect is local.  The distance 
  1035. between vertices also depends on the speed of adjacent 
  1036. knots, and on the number of non-knot vertices between 
  1037. knots.  Each of these factors will figure into the perceived 
  1038. velocity of the animated object. 
  1039.  
  1040. Cusps 
  1041.  
  1042.     In mathematics, a cusp is a point where two curves meet 
  1043. with equal and opposite slopes, as in the horns of a crescent 
  1044. moon.  In general usage, a cusp can refer to anything pointy 
  1045. looking.  In Sculpt Animate, we will use a looser definition 
  1046. and apply the word to a place where two curves meet, but do 
  1047. not share a tangent. 
  1048.  
  1049.     To see how this applies to splines, create a spline with at 
  1050. least three knots, set the cursor on one of the interior knots, 
  1051. then call up the MODIFY KNOT requester.  Look at the 
  1052. gadget labeled 'Knot type:'.  As you may have noticed on 
  1053. other knots we have worked with, this knot's type is 
  1054. REGULAR.  The 'type' gadget is a toggle gadget which 
  1055. toggles between REGULAR and CUSP -- set it to CUSP. 
  1056.  
  1057.     When the knot is made a cusp, the gadget labeled 'Side:' 
  1058. will become effective.  This is another toggle gadget that has 
  1059. two states, INWARD and OUTWARD.  These states refer to 
  1060. the two arrows that mark the knot.  One points inward, 
  1061. towards the knot, and the other outward, away from the 
  1062. knot.  By toggling the Side gadget you can pick the side you 
  1063. want to manipulate.  The side of the slope arrow that you can 
  1064. manipulate will be shown in yellow, the side that is shown 
  1065. in purple will not move. 
  1066.  
  1067.     When a knot is made into a cusp, it is split in two, so to 
  1068. speak.  Each side of the knot affects the non-knot vertices on 
  1069. that side, but has no effect on the other side.  This means 
  1070. that the knot suddenly has two slopes and two speeds, one 
  1071. set for each side.  A cusp is like a point where the 
  1072. draftsman's wooden spline has been snapped and joined by 
  1073. a hinge.  Use a cusp when you need to break up an otherwise 
  1074. smooth curve with an angle or corner. 
  1075.  
  1076.                                                                         8-7 
  1077.  
  1078. Using splines 
  1079.  
  1080.     By now you have probably thought of several uses for 
  1081. splines.  If you need to build an object with smooth curves, 
  1082. a spline will ensure that the vertices are placed along a 
  1083. convincingly smooth shape.  If your hand hobbles while 
  1084. you use the Curve Tool, the wobbles will find their way into 
  1085. objects that you Spin or Extrude from the curve.  Picking a 
  1086. few strategically placed knots and creating a spline will even 
  1087. out all the wobbles. 
  1088.  
  1089.     If you want to modify a curve, it's much easier to grab a 
  1090. knot or two and move them, rather than have to individually 
  1091. move a dozen or more vertices and try to make them represent a 
  1092. smooth curve.  Of course, the trade off is that non-knot 
  1093. vertices of a spline can only be moved by moving the knots. 
  1094.  
  1095.     If all the knots of a spline are selected, then the grabber 
  1096. will move the spline all at once, without changing its shape. 
  1097. The rotate gadgets may also be used freely on splines, and 
  1098. on sections of splines. 
  1099.  
  1100.     If you ever need to locate the knots of a spline, point the 
  1101. cursor at any vertex on the spline, and execute the command 
  1102. EDIT SELECT INDICATED SPLINE and each knot on the 
  1103. spline will be selected. 
  1104.  
  1105.     After you have built the curve that you need, it is a good 
  1106. idea to erase the underlying spline.  Just move the cursor to 
  1107. one of the vertices of a spline and execute the command 
  1108. EDIT ERASE INDICATED SPLINE.  The spline will be 
  1109. removed, but its vertices will remain.  The vertices can now 
  1110. be manipulated in any of the usual ways.  A spline uses up a 
  1111. certain amount of memory and it also slows down the 
  1112. refresh speed of the Tri-View, so once you are through 
  1113. manipulating the spline, it should be erased. 
  1114.  
  1115.     Splines can also be made that are closed loops.  Create 
  1116. them in the usual way.  For example, draw a square with the 
  1117. curve tool.  Then use the EDIT DO SUBDIVIDE menu 
  1118. command a few times so that you have several vertices along 
  1119. each side.  Deselect all the vertices, and select only the 
  1120. corner vertices as knots.  Then execute the EDIT DO MAKE 
  1121.  
  1122.                                                                         8-8 
  1123.  
  1124. SPLINE command and you should have a fairly tolerable 
  1125. approximation to a circle.  Experiment with the speed 
  1126. parameters, and you will find that you can make the circle 
  1127. slowly revert to a square again. 
  1128.  
  1129. An example: a gearwheel 
  1130.  
  1131.     Suppose you wished to make a convincing model of a 
  1132. gearwheel, you could use splines to make the job much 
  1133. simpler.  First clear the Tri-View, and make the Tri-View 
  1134. windows large with the command EDIT DO MAKE TRI- 
  1135. VIEW BIG. 
  1136.  
  1137.     We are going to make a twelve tooth gear wheel, using 
  1138. eight vertices per tooth.  In the west window add a circle 
  1139. with 96 subdivisions.  Carefully select every fourth vertex of 
  1140. the circle.  As a check, make sure there are three unselected 
  1141. vertices between every two selected ones, especially between 
  1142. the last and first vertices that you selected. 
  1143.  
  1144.     Execute the command EDIT DO MAKE SPLINE.  You 
  1145. now have a 96 vertex circular spline, with 24 knots (all the 
  1146. knots are selected).  Now deselect every other knot, so only 
  1147. twelve vertices remain selected. 
  1148.  
  1149.     Execute the command EDIT DO EXPAND and make 
  1150. sure that the center of expansion is either CENTER or 
  1151. CENTROID.  Move the upper slider a small distance to the 
  1152. left and watch a gearwheel shape emerge.  When you are 
  1153. satisfied with the shape, leave the requester by clicking OK. 
  1154.  
  1155.     Move the cursor to any vertex and execute the command 
  1156. EDIT ERASE INDICATED SPLINE, because we no longer 
  1157. need to use the properties of the spline.  You now have the 
  1158. profile outline of a gearwheel.  Save this outline to disk--you 
  1159. will need an unfilled copy later. 
  1160.  
  1161.     Now the gear wheel profile may be filled with triangles, 
  1162. to make it a visible surface.  If you were to select the 
  1163. gearwheel's profile and use the EDIT DO FILL command, 
  1164. the time to fill in a 96 vertex curve would be about half an 
  1165.  
  1166.                                                                         8-9 
  1167.  
  1168. hour, so it might be quicker to use the edge maker tool. 
  1169. Alternatively, and perhaps less tedious, you can make a 
  1170. number of edges manually, to divide the outline into a dozen 
  1171. or so regions, the select each region in turn and use the 
  1172. FILL command on it. 
  1173.  
  1174.     In any case, once you have filled the profile, save the 
  1175. filled version to a separate disk file, being sure not to 
  1176. overwrite the unfilled copy. 
  1177.  
  1178.     You could now simply extrude the filled outline to create 
  1179. a solid gearwheel, but this step has two disadvantages. 
  1180. First, this will leave the back side of the gearwheel open. 
  1181. This is actually an advantage if it will never be seen, since it 
  1182. saves memory and speeds calculation, but it could be 
  1183. annoying if the back side needs to be there. 
  1184.  
  1185.     The second disadvantage only arises if you intend to use 
  1186. smoothing.  There are two things that can confuse the Phong 
  1187. smoothing algorithm: flat surfaces made up of many faces, 
  1188. and right-angle corners (see chapter 4).  If you envision our 
  1189. extruded gearwheel, you'll see that it has both of these problems! 
  1190. If you wish to use smoothing on the curved portions of the 
  1191. teeth, you must somehow separate the gearwheel's edge 
  1192. from its flat surfaces. 
  1193.  
  1194.     One way to do this is to form the gear wheel from three 
  1195. unconnected parts: the two flat faces and the curved portion 
  1196. that joins them along the edge.  This allows you to turn 
  1197. smoothing on only for the curved portion. 
  1198.  
  1199.     To do this, first clear the Tri-View and load the 
  1200. gearwheel profile that you saved earlier.  Use MODIFY 
  1201. FACES to turn on smoothing, then extrude the profile.  Add 
  1202. a copy of the gearwheel's filled surface with the PROJECT 
  1203. LOAD OBJECT command.  Use the Grabber to move the 
  1204. face into place at the front of the gear wheel.  Load a second 
  1205. copy of the filled outline and position is as the back surface. 
  1206.  
  1207.     Select the flat surfaces and use MODIFY FACES to turn 
  1208. their smoothing OFF.  The gearwheel is complete! 
  1209.  
  1210.                                                                         8-10 
  1211.  
  1212.                                 CHAPTER 9 
  1213.  
  1214.                           WHEELS WITHIN WHEELS 
  1215.  
  1216.     Whenever you must deal with a complicated system, it is 
  1217. always easier to break down the larger problems into a 
  1218. number of smaller, simpler ones.  As we saw in chapter 6, it 
  1219. can be very convenient to think of a complex object as a 
  1220. collection of simpler parts.  When the object is completed, 
  1221. you can connect the parts together and forget about them, 
  1222. dealing with the object as a single item again. 
  1223.  
  1224.     But what if we want to deal with an object as a whole at 
  1225. some times, and as a collection of parts at others?  As we 
  1226. begin to animate objects in subsequent chapters, you will see 
  1227. ample need for this ability. 
  1228.  
  1229.     Sculpt Animate allows you to organize the objects of a 
  1230. scene, the parts of the objects, the parts of the parts, and so 
  1231. forth, into a hierarchy.  At any given time you can deal with 
  1232. the level in the hierarchy that suits your needs.  In later 
  1233. chapters you will see that, as with objects, object motions 
  1234. may also be placed in the hierarchy. 
  1235.  
  1236. Hierarchies of objects 
  1237.  
  1238.     A hierarchy is a structure in which each member has a 
  1239. well defined level.  Except for the uppermost level of the 
  1240. hierarchy, each member is subordinate to one superior 
  1241. member.  On the other hand, each member may directly 
  1242. control one or more members at the next lower level. 
  1243.  
  1244.     This ordering is similar to that of a branch of the armed 
  1245. services, or a large corporation.  The exception is that in 
  1246. these 'real world' hierarchies, lower members are often 
  1247. subordinate to any superior, not just one. 
  1248.  
  1249.                                                                         9-1 
  1250.  
  1251.     Another everyday structure that takes the form of a 
  1252. hierarchy is a family tree.  We will borrow some familiar 
  1253. terms like 'parentage' and 'offspring' when we describe the 
  1254. hierarchical structure used in Sculpt Animate. 
  1255.  
  1256.     The object structure of Sculpt Animate is imposed by 
  1257. giving names to groups of vertices.  The names form a 
  1258. hierarchy.  For the time being we will be discussing this 
  1259. hierarchical structure 'on paper'.  The next section will 
  1260. discuss the mechanics of constructing and using such a 
  1261. structure. 
  1262.  
  1263.     Suppose that we have constructed models of several 
  1264. people, Fred, Joe and Bill for example.  It would be 
  1265. convenient to be able to treat the model of each person as a 
  1266. single entity, even though each may be constructed from 
  1267. several unconnected elements.  It is as though we could 
  1268. issue the command 'SELECT Bill', and have all the vertices 
  1269. of the model Bill be selected.  Bill could now be grabbed 
  1270. and moved to a new location, or rotated and expanded. 
  1271.  
  1272.     For many cases, this is quite enough.  If, for instance, 
  1273. Bill were not a human figure, but actually one of three red 
  1274. regions on the hull of a flying saucer, then having a name 
  1275. tagged onto Bill's vertices permits you to select them 
  1276. independently, without having to care what they're 
  1277. connected to.  This sort of ad hoc, piecemeal, naming of 
  1278. things can be very helpful if you are just modeling objects. 
  1279. More complex organization may not be needed. 
  1280.  
  1281.     But, as its name suggests, a big part of Sculpt Animate is 
  1282. animation.  Bill, is more than likely, a human figure; or at 
  1283. least something that moves.  If simple naming were all there 
  1284. was to the scene's hierarchy, Bill would be like a mannequin 
  1285. with no moving parts.  In the hierarchy, though, we can 
  1286. arrange his parts into a series of levels, with the whole lot 
  1287. being named 'Bill'.  The idea is to be able to select some of 
  1288. Bill's parts independently, or select Bill all at once. 
  1289.  
  1290.     Lets say we want to be able to select just Bill's left arm. 
  1291. It wouldn't be enough just to rename those vertices as 
  1292. 'leftarm,' because they would no longer be selected when 
  1293.  
  1294.                                                                         9-2 
  1295.  
  1296. we select Bill.  We need to have a way to name the vertices 
  1297. 'Bill's left arm.' 
  1298.  
  1299.     In Sculpt Animate parlance, this can be done by naming 
  1300. the vertices 'Bill+leftarm.'  Assuming that we had deselected 
  1301. all vertices, the command "SELECT Bill+leftarm" would 
  1302. then cause all the vertices of Bill's left arm to be selected. 
  1303. By placing the cursor at Bill's left shoulder, the rotate 
  1304. gadgets could be used to raise Bill's hand, the first step in an 
  1305. animated salute, for example. 
  1306.  
  1307.     This suggests that we could decompose Bill into several 
  1308. elements, such as 
  1309.  
  1310.         Bill+leftarm 
  1311.         Bill+rightarm 
  1312.         Bill+head 
  1313.         Bill+torso 
  1314.         Bill+leftleg 
  1315.         Bill+rightleg 
  1316.  
  1317.     Each element could be further decomposed, for example 
  1318.  
  1319.         Bill+leftarm+upper 
  1320.         Bill+leftarm+lower 
  1321.         Bill+leftarm+hand 
  1322.  
  1323.     The only limit in our subdivision is the amount of detail 
  1324. in the model of Bill.  We can continue. 
  1325.  
  1326.         Bill+leftarm+hand+finger1 
  1327.         Bill+leftarm+hand+finger2 
  1328.         Bill+leftarm+hand+finger3 
  1329.         Bill+leftarm+hand+finger4 
  1330.         Bill+leftarm+hand+thumb 
  1331.  
  1332.     If we compare the structure of Bill to a family tree, we 
  1333. can regard the name 'Bill' as the founding father with 
  1334. offspring 'head', 'leftarm', etc.  The name 'leftarm' 
  1335.  
  1336.                                                                         9-3 
  1337.  
  1338. begets 'upper', 'lower' and 'hand', and 'hand' produces 
  1339. five offspring in the fourth generation, including 'thumb'. 
  1340.  
  1341.     A drawback of this organization is that here may be 
  1342. combinations that we wish to select, like both thumbs, or all 
  1343. fingers and all toes, that are not accessible with a single 
  1344. command.  When you plan your hierarchical structure, you 
  1345. should bear in mind what combinations are going to be used 
  1346. most often, and design the hierarchy accordingly. 
  1347.  
  1348.     Another major factor in the design of the hierarchy is 
  1349. motion.  Although we have only touched on the subject so 
  1350. far, the primary use for a scene's hierarchy will probably be 
  1351. to animate objects.  In later chapters, you will learn how 
  1352. motion fits into the hierarchy, but first you have to learn how 
  1353. to construct the hierarchy itself! 
  1354.  
  1355. Building a hierarchy 
  1356.  
  1357.     As you have probably guessed, there is a facility in 
  1358. Sculpt Animate for building a hierarchy of names.  To see it, 
  1359. execute the menu command EDIT NAME SELECTED 
  1360. VERTICES. 
  1361.  
  1362.     Although this command is designed to supply a name to 
  1363. a group of selected vertices, it also lets you build a hierarchy 
  1364. of names.  The requester that pops up has a column of 9 
  1365. slots.  This represents the 'current' generation of the 
  1366. hierarchy. 
  1367.  
  1368.     Because we have not entered any names, all the slots are 
  1369. empty.  To the left of the current generations is a long 
  1370. horizontal box titled 'Parentage', which is also empty. 
  1371. When the requester comes up, the box titled 'Add name:' 
  1372. will have a cursor in it, which means that it is ready for you 
  1373. to begin typing in the first name of the current generation. 
  1374. For starters, type in 'Bill'.  When you press RETURN, the 
  1375. name will be transferred to the center of the current 
  1376. generation. 
  1377.  
  1378.                                                                         9-4 
  1379.  
  1380.     Now type in 'Fred', 'Joe', etc.  As you type in more 
  1381. names, you will notice that they are entered into the current 
  1382. generation in alphabetical order, and the name is always 
  1383. entered into the center slot.  You may wonder just what it is 
  1384. that you are naming.  As of now, nothing.  You are simply 
  1385. entering names into the hierarchy.  You may enter a number 
  1386. of names all at once, then go back at your leisure and assign 
  1387. them to vertices. 
  1388.  
  1389.         +------------------------------------------------------------+ 
  1390.         |============================================================| 
  1391.         +------------------------------------------------------------| 
  1392.         |               NAME SELECTED VERTICES                       | 
  1393.         |                                                            | 
  1394.         |          +------------+  +--+ +--------------+             | 
  1395.         | Add name:|            |  |/\| |              |             | 
  1396.         |          +------------+  +--+ +--------------+             | 
  1397.         |                          |  | |              |             | 
  1398.         |  +---+  +----+  +-----+  |  | +--------------+             | 
  1399.         |  |CUT|  |COPY|  |PASTE|  |==| |              |             | 
  1400.         |  +---+  +----+  +-----+  |  | +--------------+             | 
  1401.         |        Parentage         |  | |Bill          |             | 
  1402.         | +---------------------+  |  | +--------------+ +---------+ | 
  1403.         | |                     |  |  | |Etc           | |OFFSPRING| | 
  1404.         | +---------------------+  |  | +--------------+ +---------+ | 
  1405.         |                          |  | |Fred          |             | 
  1406.         | +------+                 |==| +--------------+             | 
  1407.         | |RENAME|                 |  | |Joe           |             | 
  1408.         | +------+                 |  | +--------------+             | 
  1409.         | +----------+             |  | |              |             | 
  1410.         | |ERASE NAME|             |  | +--------------+             | 
  1411.         | +----------+             |  | |              |             | 
  1412.         | +------+                 +--+ +--------------+ +--------+  | 
  1413.         | |CANCEL|                 |\/|                  |   OK   |  | 
  1414.         | +------+                 +--+                  +--------+  | 
  1415.         |                                                            | 
  1416.         +------------------------------------------------------------+ 
  1417.  
  1418.                     The Name Selected Vertices Requester 
  1419.  
  1420.     If you persist in adding names, a scroll bar will become 
  1421. active, so that you can move the list up and down, moving 
  1422. any name of the current generation into the center slot.  If the 
  1423. name you want is among the nine items that are visible, you 
  1424. can quickly move it to the center slot by clicking on it with 
  1425. the left mouse button. 
  1426.  
  1427.     By now you will have realized that his center slot has 
  1428. special significance.  If you were to terminate this requester 
  1429. by clicking it on the OK gadget, any selected vertices would be 
  1430. given the name in the center slot.  Call this name the 
  1431. current name. 
  1432.  
  1433.                                                                         9-5 
  1434.  
  1435.     Now let's create a new generation.  To start, click on the 
  1436. name Bill, or use the scroll bar to make Bill the current 
  1437. name.  Next click on the gadget to the right, the one called 
  1438. OFFSPRING.  Two things will happen.  First, the column 
  1439. of names representing the current generation will be cleared. 
  1440. This is because we are looking at Bill's offspring, and he 
  1441. doesn't have any yet.  The second thing to notice is that the 
  1442. name 'Bill appears in the box titled 'Parentage:'.  Bill is the 
  1443. parent of the yet to be created offspring. 
  1444.  
  1445.     To give Bill his 'offspring', add the names 'leftarm', 
  1446. 'rightarm', 'leftleg', 'rightleg', 'torso' and 'head'.  Click on 
  1447. 'leftarm' and it will become the current name, or to be exact, 
  1448. the current name will be 'Bill+leftarm'.  Click on the 
  1449. OFFSPRING gadget and we are ready to add the third 
  1450. generation: 'upper', 'lower' and 'hand'.  The parentage box 
  1451. will show 'Bill+leftarm'.  Continue in this way until you 
  1452. lose patience, or Bill's left arm structure is defined all the 
  1453. way to his thumb and fingers. 
  1454.  
  1455.     If you wish to backtrack to an earlier generation, click on 
  1456. the Parentage box.  You are never able to add things to this 
  1457. box, but clicking on it will transfer you to the next older 
  1458. generation of names.  If the list of ancestors becomes too 
  1459. large to fit in the Parentage box, you can still continue, but 
  1460. only the most recent ancestors will be displayed and three 
  1461. periods (...) will be displayed to show that the parentage list 
  1462. is not complete. 
  1463.  
  1464.     You have just constructed an elaborate hierarchy.  As 
  1465. you create hierarchies of your own design, you should 
  1466. remember these important, if minor, restrictions: 
  1467.  
  1468.         1)  The names that you use cannot be more than 10 
  1469.             characters long (that is the most the 'Add 
  1470.             name:' gadget has room for). 
  1471.  
  1472.         2)  You may use upper and lower case letters, but the 
  1473.             name will be treated as though it was all in upper 
  1474.             case, for the purpose of maintaining the current 
  1475.             generation list in alphabetical order. 
  1476.  
  1477.                                                                         9-6 
  1478.  
  1479.         3)  The same name may not be used more than once 
  1480.             as the offspring of the same parent.  Thus Bill 
  1481.             can only have one 'leftarm' on any one level, but 
  1482.             Bill and Joe can each have a 'leftarm' of their 
  1483.             own. 
  1484.  
  1485.         4)  If the name begins with a digit (0 through 9), 
  1486.             strange things may happen.  Avoid using names 
  1487.             that start with a digit until you learn the 
  1488.             ramifications of doing so (in chapter 12). 
  1489.  
  1490.         5)  Do not use any characters except letters, digits, 
  1491.             period (.), underscore (_), minus (-), or sharp 
  1492.             (#). 
  1493.  
  1494.         6)  The object hierarchy may be up to 16 generations 
  1495.             deep but you will probably never need more 
  1496.             than 5 or 6 generations. 
  1497.  
  1498.         7)  A name may have up to 255 offspring, which 
  1499.             should suffice for the most prolific name. 
  1500.  
  1501.         8)  Avoid using the names LOCATION and 
  1502.             TARGET, these names are reserved so that you 
  1503.             can refer to the observer's location and target for 
  1504.             animation purposes. 
  1505.  
  1506.     If you break these rules, the name will usually not be 
  1507. added to the current generation of names.  The exceptions 
  1508. are rules 4 and 8. 
  1509.  
  1510.     Although the same name cannot appear twice in the same 
  1511. level with the same parentage (rule 3), the same name can be 
  1512. used on different levels of a branch, for instance, Bill's 
  1513. upper and lower arm may both be named 'arm' in this 
  1514. fashion: 'Bill+leftside+arm+arm'.  The names are on 
  1515. different levels, so they don't conflict.  The name 'leftside' 
  1516. in this example might not even name any vertices by itself. 
  1517. Such a 'null' name can be used as an attachment point for 
  1518. grouping other named vertices. 
  1519.  
  1520.                                                                         9-7 
  1521.  
  1522.     If you make a mistake entering names, the current name 
  1523. can be erased with the ERASE NAME gadget, provided that 
  1524. the name has no offspring.  If it has, erase all offspring 
  1525. first.  Any vertices that have been named by the erased name 
  1526. become unnamed 'free agents'. 
  1527.  
  1528.     At any time you can leave the requester by clicking on 
  1529. the OK or CANCEL gadget.  The oK gadget will assign the 
  1530. current name to any selected vertices.  The CANCEL gadget 
  1531. allows you to leave the requester without assigning any 
  1532. name to the vertices, but it will not destroy any changes you 
  1533. have made to the hierarchy. 
  1534.  
  1535.     It is possible to assign a name to vertices that have 
  1536. already been named.  If this happens, the old name will no 
  1537. longer apply to the renamed vertices, since a particular vertex 
  1538. can have only one name.  Suppose that the vertices of Bill's 
  1539. left thumb were selected, and you named them 'Joe', then no 
  1540. vertices would respond to the name 
  1541. 'Bill+leftarm+hand+thumb'. 
  1542.  
  1543.     In our example, we have entered several names into the 
  1544. hierarchy that do not as yet, have vertices assigned to them. 
  1545. When you are building an object with a specific plan in 
  1546. mind, it works well to lay out the hierarchy beforehand and 
  1547. enter it all at once.  The vertices of your objects may be 
  1548. selected and assigned names afterward.  It is just as well in 
  1549. some cases to create your objects or parts of objects first, 
  1550. then assign names to the various parts.  You will soon find 
  1551. which approach suits your style most in various situations. 
  1552.  
  1553.     If you have constructed your object so that it's parts are 
  1554. not connected by edges, it may be easier not to select vertices 
  1555. for naming, but to simply indicate the object you wish to 
  1556. name with the cursor and use the command 'EDIT NAME 
  1557. CONNECTED VERTICES.  This command is similar to 
  1558. EDIT NAME SELECTED VERTICES except that it operates 
  1559. on vertices that are connected to the indicated vertex. 
  1560.  
  1561.                                                                         9-8 
  1562.  
  1563. Using an object hierarchy 
  1564.  
  1565.     The object hierarchy can be used to select, deselect and 
  1566. erase groups of vertices by name. 
  1567.  
  1568.     Going back to our example hierarchy, you may select 
  1569. Bill's left thumb executing the menu command EDIT 
  1570. SELECT NAMED VERTICES.  A requester very similar to 
  1571. the NAME SELECTED VERTICES will pop up.  Instead of 
  1572. the 'Add name:' and ERASE NAME gadgets, there are 
  1573. SELECT and DESELECT gadgets. 
  1574.  
  1575.     To use this requester, you must first pick a name.  Do 
  1576. this by clicking on a current generation, Parentage, or 
  1577. OFFSPRING gadget.  When the current name is correct, 
  1578. press the OK button, and the selection will be made as you 
  1579. leave the requester. 
  1580.  
  1581.     You don't have to leave the requester every time you 
  1582. want to select something.  Instead, you may press the 
  1583. SELECT gadget, which immediately selects the vertices 
  1584. name by the current name, as though you had clicked OK 
  1585. and executed the command again.  This leaves you free to 
  1586. change the current name and select something else. 
  1587.  
  1588.     As a matter of convenience, there is also a DESELECT 
  1589. gadget which allows you to deselect vertices without leaving 
  1590. the requester.  For example you could select all four of Bill's 
  1591. left fingers (and his palm, if he has one) by choosing the 
  1592. name Bill+leftarm+hand and clicking on SELECT.  This 
  1593. also selects Bill's thumb, though, so next you can click 
  1594. OFFSPRING, then 'thumb' to make it the current name, and 
  1595. then click DESELECT. 
  1596.  
  1597.     The SELECT and DESELECT gadgets take effect 
  1598. immediately.  If you press on the CANCEL gadget to leave 
  1599. the requester any selections or deselections that you have 
  1600. made with them will be retained.  When you click OK to 
  1601. leave, vertices with the current name will also be selected. 
  1602.  
  1603.     If you try to select vertices that are already selected, the 
  1604. screen will flash to tell you that your request had no effect. 
  1605.  
  1606.                                                                         9-9 
  1607.  
  1608.     The menu command EDIT DESELECT NAMED 
  1609. VERTICES calls up a requester that works the same as it's 
  1610. counterpart, except that the OK gadget causes vertices with 
  1611. the current name to be deselected instead of selected.  It also 
  1612. has both SELECT and DESELECT gadgets. 
  1613.  
  1614.     The command EDIT ERASE NAMED VERTICES 
  1615. invokes a requester called ERASE NAMED VERTICES.  If 
  1616. you click OK in this requester, the vertices named by the 
  1617. current name, as well as those named by all its offspring, 
  1618. will be erased. 
  1619.  
  1620.     The ERASE NAMED VERTICES requester has two 
  1621. special purpose gadgets: ERASE VERTICES and ERASE 
  1622. NAME.  ERASE VERTICES has the same effect as clicking 
  1623. OK and then re-invoking the requester.  ERASE NAME 
  1624. erases the current name from the hierarchy, unless the name 
  1625. has offspring.  To erase a name with offspring, erase all the 
  1626. offspring names first. 
  1627.  
  1628.     If you wish to erase a name and its vertices, be sure to 
  1629. erase the vertices first.  Once the name is erased, you will 
  1630. have to select the vertices by some other means before you 
  1631. can erase them. 
  1632.  
  1633. Editing the hierarchy 
  1634.  
  1635.     Mistakes can happen and it is important to be able to 
  1636. easily correct them.  If you wish to alter a scene's hierarchy, 
  1637. call up any of the EDIT NAME requesters, such as EDIT 
  1638. NAME SELECTED VERTICES.  In addition to their normal 
  1639. functions, these requesters permit you to re-order and 
  1640. otherwise edit the hierarchy. 
  1641.  
  1642.     For instance, if you want to change the name of a 
  1643. hierarchy element, select the name that you wish to change 
  1644. and press the RENAME button.  A requester will pop up to 
  1645. let you type in a new name to replace the current name. 
  1646.  
  1647.     These requesters also have CUT, PASTE and COPY 
  1648. buttons.  The command CUT will extract the current name 
  1649.  
  1650.                                                                         9-10 
  1651.  
  1652. and its vertices from the hierarchy, along with all its 
  1653. offspring and all the vertices they name.  These items are 
  1654. stored in a temporary location in RAM. 
  1655.  
  1656.     The COPY button works in a similar fashion, except that 
  1657. the items are only copied into temporary storage, and the 
  1658. original vertices and names are unchanged. 
  1659.  
  1660.     The PASTE gadget may be used to retrieve items that 
  1661. have been stored with COPY or CUT.  When PASTE is 
  1662. clicked, the name that was current when the last CUT or 
  1663. COPY occurred will be entered into the current level of the 
  1664. hierarchy.  All that name's vertices will also be entered, as 
  1665. well as it's offspring and their vertices.  Note that the copied 
  1666. vertices will lie in the same location as the original vertices, 
  1667. so you will probably want to select these vertices, grab 
  1668. them, and move them somewhere else. 
  1669.  
  1670.     The hierarchy action of CUT and PASTE should become 
  1671. clear if we use these commands to supply an object named 
  1672. 'Joe' with a left arm copied from 'Bill'.  First issue an EDIT 
  1673. NAME SELECTED VERTICES menu command.  Make the 
  1674. name Bill+leftarm the current name and click on COPY.  The 
  1675. vertices named Bill+leftarm will be copied to temporary 
  1676. RAM storage, along with the matching hierarchy fragment, 
  1677. something like this: 
  1678.  
  1679.                                           +----- finger1 
  1680.                                           | 
  1681.         leftarm -----+---- hand ----------+----- finger2 
  1682.                      |                    | 
  1683.                      +---- upper          +----- finger3 
  1684.                      |                    | 
  1685.                      +---- lower          +----- finger 4 
  1686.                                           | 
  1687.                                           +----- thumb 
  1688.  
  1689.     Now move up a level and select or type in the name 
  1690. 'Joe', then click on the OFFSPRING gadget.  Currently Joe 
  1691. does not have any offspring, so all the current generation 
  1692. slots should be clear.  Now press the PASTE gadget.  You 
  1693. will notice that Joe now has the hierarchy structure of a left 
  1694.  
  1695.                                                                         9-11 
  1696.  
  1697. arm.  If Bill's left arm actually contained vertices, these have 
  1698. been duplicated. 
  1699.  
  1700.     When you perform a PASTE, it is possible that the item 
  1701. you want to paste will have the same name as another item in 
  1702. the same level of the hierarchy.  If this happens, you will be 
  1703. asked if you want Sculpt Animate to merge the two items.  If 
  1704. you say no, a new name will be generated for the new item, 
  1705. which you can rename later if you wish. 
  1706.  
  1707.     If an item is passed farther down in the hierarchy than it 
  1708. originated, it is possible that it's structure might extend past 
  1709. the sixteen level limit.  If this occurs the hierarchy segment 
  1710. will be truncated to fit.  New vertices that would have been 
  1711. named by the truncated levels will be unnamed. 
  1712.  
  1713. Loading and saving named objects 
  1714.  
  1715.     Two more commands serve to round out the object 
  1716. hierarchy system.  The menu command PROJECT SAVE 
  1717. NAMED OBJECT, invokes a simplified version of the 
  1718. standard hierarchy requester.  After you have selected a 
  1719. name from the hierarchy by traversing the family tree, you 
  1720. can press the OK gadget to save the currently named object 
  1721. as a scene file.  A standard file requester will appear to let 
  1722. you enter or choose a name for the scene, just as if you had 
  1723. issued the PROJECT SAVE OBJECT command.  The part 
  1724. of the hierarchy that corresponds to the object will also be 
  1725. saved in the scene file, just as it would be stored by CUT or 
  1726. COPY. 
  1727.  
  1728.     The complementary command, PROJECT LOAD 
  1729. NAMED OBJECT calls up a requester similar to the NAME 
  1730. SELECTED VERTICES requester.  You can use the usual 
  1731. gadgets to modify and traverse the hierarchy.  When you 
  1732. select a particular level in the hierarchy and click on the OK 
  1733. gadget, you will first be prompted for the name of the scene 
  1734. file, and then the object will be loaded.  If the scene file 
  1735. contains hierarchy information, for example if it was 
  1736. produced by the PROJECT SAVE NAMED OBJECT 
  1737. command, then the hierarchy will be merged into the current 
  1738.  
  1739.                                                                         9-12 
  1740.  
  1741. hierarchy at the selected level.  It doesn't matter which 
  1742. member of the current generation was chosen, the loaded 
  1743. object's hierarchy will just be loaded into the selected level. 
  1744.  
  1745.                                                                         9-13 
  1746.  
  1747.                                 CHAPTER 10
  1748.     
  1749.                                MOTION PATHS
  1750.  
  1751.     The last chapter hinted that a scene's hierarchy may be
  1752. used to give an object motion. This chapter explains how
  1753. motion can be created and manipulated in the Tri-View as a
  1754. special sort of object called a path. Paths are an instrumental
  1755. part of global animations, one of Sculpt Animate's two
  1756. fundamental types of animation, both of which are described
  1757. in the next chapter.
  1758.  
  1759. Paths
  1760.  
  1761.     We have seen that, in Sculpt Animate, a set of vertices
  1762. linked by edges can be used to represent a curve in three
  1763. dimensional space. We have also seen how splines are 
  1764. power tools for creating smooth curves.
  1765.  
  1766.     Sculpt Animate also supports a slightly different entity
  1767. called a Path. A path is used to represent the motion of a
  1768. point that moves through space. If you regard time as a 
  1769. fourth dimension, then a path is a 4 dimensional curve. This 
  1770. may sound rather frightening. Fortunately, paths have a 
  1771. simple representation in Sculpt Animate, and no 
  1772. mathematical knowledge is required to use or manipulate 
  1773. them.
  1774.  
  1775.     Instead of the abstract concept of a point moving through
  1776. space, let us take a concrete example. Suppose we wish to 
  1777. make an animation of a man running across the Sahara 
  1778. desert. Perhaps through derangement caused by lack of 
  1779. water, he does not run in a straight line but in irregular loops
  1780. and wobbles. What's more, he not only moves in the 
  1781. horizontal directions, but also up and down the sides of the
  1782. desert's sand dunes. He is a living model of three 
  1783. dimensional motion.
  1784.  
  1785.                                                                         10-1
  1786.  
  1787.     His footsteps in the sand leave evidence of where he has
  1788. been. If we assume that he is running at a steady pace, say 
  1789. one pace per second, then by counting footsteps we know 
  1790. when he was at a particular place. Footprint number 60 
  1791. must have been made one minute after he started running. 
  1792. His motion has defined a clear, unambiguous path.
  1793.  
  1794.     In Sculpt Animate, we can mimic this sort of path by
  1795. placing a vertex at each location, or 'footstep', and link
  1796. adjacent steps with an edge. This will just be a curve in 
  1797. space, but we can interpret it as a path if we assume that each
  1798. vertex fixes the location of our modeled man at a particular
  1799. time. While the real man's hapless wanderings apparently 
  1800. created his path, our imaginary man will follow the path we
  1801. create for him.
  1802.  
  1803.     Once we have described the path for our man, or any
  1804. moving object, Sculpt Animate will create a sequence of 
  1805. images, similar to the ones we have been creating all along. 
  1806. Each image shows the animated object in a slightly different
  1807. place along the path. When the images are shown in rapid 
  1808. sequence (many times per second), the object seems to move 
  1809. along the path.
  1810.  
  1811.     Each of these images is called a 'frame' in animator's
  1812. parlance. Instead of dividing up our paths by footsteps, we 
  1813. say that each vertex on a path represents the animated 
  1814. object's location in a particular frame of the animation. For
  1815. smooth motion, of course, there would probably be more 
  1816. than one vertex (i.e., frame) for each step along a running 
  1817. man's path.
  1818.  
  1819. Creating paths
  1820.  
  1821.     We have already seen that it is easy to create a curve in
  1822. Sculpt Animate. A curve is not quite the same thing as a 
  1823. path, however. The primary difference is that a path must 
  1824. have an unambiguous starting point. A closed curve path 
  1825. (like a circle) could start at any vertex, and go either direction
  1826. around the curve. An open curve path could start at either 
  1827. end.
  1828.  
  1829.                                                                         10-2
  1830.  
  1831.     Another important rule for paths is that they must never
  1832. fork. The reason is clear enough, if the vertex defining one
  1833. location of the path has two edges leading away from it, 
  1834. which way is the program going to move the object?
  1835.  
  1836.     Because of these considerations, we need to tell Sculpt
  1837. Animate that a curve is to be a path, where it starts, and -- in
  1838. the case of closed loops -- which way it leads.
  1839.  
  1840.     If the curve is open (has two ends), you can do this
  1841. simply by moving the cursor to one of its end vertices and
  1842. executing the command EDIT DO MAKE PATH. The 
  1843. cursor indicates the beginning of the path, where the object 
  1844. will be placed in the animation's first frame.
  1845.  
  1846.     If the path is a closed loop or circle, then you need to
  1847. pick a direction for the path, as well as indicating the first
  1848. vertex. This is done by first executing a DESELECT ALL, 
  1849. then selecting the vertex that will be the second location in 
  1850. the path. When this is done you can indicate the first vertex 
  1851. and issue the command EDIT DO MAKE PATH as usual.
  1852.  
  1853.     Sculpt Animate will examine the indicated curve to make
  1854. sure it is suitable for use as a path. If it is not, the program
  1855. will display a message telling you why, and nothing else will
  1856. happen. If the curve is suitable, a small arrow will be drawn
  1857. halfway between its first and second vertices, to show you 
  1858. that it has, indeed, been made a path.
  1859.  
  1860.     Except for memory, there is no practical limit to the
  1861. number of paths you may create. Later in this chapter, you 
  1862. will see how to tell Sculpt Animate which path a particular 
  1863. object is to follow. You will also see how the path an object
  1864. follows may be attached to yet another path, so that very 
  1865. complex movements may be described.
  1866.  
  1867.     If you ever wish to erase a path, you may do so by
  1868. erasing its vertices. If you want to erase the path, but retain 
  1869. its vertices and edges, indicate any vertex on the path and 
  1870. issue the command EDIT ERASE INDICATED PATH.
  1871.  
  1872.                                                                         10-3
  1873.  
  1874.     If you want to see if a curve is a path, but don't want to
  1875. bother looking for its little arrow, indicate a vertex on the 
  1876. curve and call the command EDIT SELECTED INDICATED 
  1877. PATH. If the curve is a path, its vertices will be selected. If
  1878. not, a message will be displayed to tell you so.
  1879.  
  1880. Tumbling
  1881.  
  1882.     The last section told you how to create a path to describe
  1883. the motion of an animated object. The next section will tell 
  1884. you how to make the object follow the path. This section 
  1885. deals with an important detail which lies between these two
  1886. problems: how will the object be oriented as it follows the 
  1887. path?
  1888.  
  1889.     Let's go back to our example of the running man.
  1890. Ignoring for the moment the rather difficult problem of leg 
  1891. and arm motion, let's look at how the man should position 
  1892. his body as he runs. For one thing, it is obvious that he will
  1893. always face more or less in the direction he is running.
  1894. Furthermore, he will probably pitch to one side or the other 
  1895. when he turns. Finally, most people tilt forward somewhat 
  1896. as they run -- more or less so, perhaps, when climbing or
  1897. descending a sand dune.
  1898.  
  1899.     If you were to attach our imaginary man to a path created
  1900. using just the techniques of the last section, this is not the 
  1901. sort of motion you would see in the resulting animation. 
  1902. Rather, the man would slide blindly along the path, always 
  1903. facing in the same direction he faced when he was 
  1904. constructed. This is because the program has no idea what a 
  1905. man is, or how he runs -- if it did, it would be a much more
  1906. complex program indeed!
  1907.  
  1908.     Rather than trying to guess how the objects you create
  1909. will move, Sculpt Animate simply allows you to specify an 
  1910. object orientation for each vertex along the path. This 
  1911. orientation is called the 'tumble' for that location. When an
  1912. object follows a path, it orients itself according to the tumble
  1913. setting for each vertex.
  1914.  
  1915.                                                                         10-4
  1916.  
  1917.     You can set the part of the object about which it will
  1918. tumble (see the 'Local Origin' section, later in this chapter), 
  1919. so you have complete control over the object's motion.
  1920.  
  1921.     If you specify the tumble for only a few vertices, Sculpt
  1922. Animate can often guess the correct tumble for the ones in-
  1923. between. We'll speak more of this later in this section.
  1924.  
  1925.  !==========================================!
  1926.  !==========================================!
  1927.  !                                          !
  1928.  !             MODIFY TUMBLE                !
  1929.  !                                          !
  1930.  !            !--------------!              !
  1931.  !            !  MATCH LAST  !              !
  1932.  !            !--------------!              !
  1933.  !     Method:!--------------!              !
  1934.  !            ! INTERPOLATED !              !
  1935.  !            !--------------!              !
  1936.  !    Move to:!----------!  !------!        !
  1937.  !            ! PREVIOUS !  ! NEXT !        !
  1938.  !            !----------!  !------!        !
  1939.  !  !-----------!       !-----------!       !
  1940.  !  !  CANCEL   !       !    OK     !       !
  1941.  !  !-----------!       !-----------!       !
  1942.  !==========================================!
  1943.  !==========================================!
  1944.  
  1945.     To specify the tumble setting for a vertex of a path, first
  1946. move the cursor to the vertex and execute the menu 
  1947. command EDIT MODIFY INDICATED TUMBLE. This 
  1948. command brings up a requester titled 'MODIFY 
  1949. INDICATED TUMBLE'. Lid the MODIFY INDICATED 
  1950. KNOT requester, this one also has a drag bar on the top so 
  1951. you can move it around as needed.
  1952.  
  1953.     When the requester comes up, the indicated vertex will
  1954. become centered in the Tri-View, and three brightly colored 
  1955. lines will be shown extending from it. These lines represent 
  1956. the Tumble Axes for that vertex of the path.
  1957.  
  1958.                                                                         10-5
  1959.  
  1960.     The first time you call up the requester, one line will be
  1961. pointing East, one will be pointing North and one will be 
  1962. pointing upwards -- so that only two of the lines are visible in
  1963. any one window. At this time, the lines all seem to have the 
  1964. same length on the screen.
  1965.  
  1966.     Let us call these liens the East Tumble Axis, the North
  1967. Tumble Axis and the Up Tumble Axis, respectively. Note 
  1968. that the East Tumble Axis is yellow, the North Tumble Axis 
  1969. is white and the Up Tumble Axis is purple. You should 
  1970. remember which color corresponds to each direction.
  1971.  
  1972.     As an aid to memory, you can paint your right index
  1973. finger yellow, your middle finger white and your thumb 
  1974. purple. With a little contortion you can extend the two 
  1975. painted fingers and the tumble so that each is at right angles 
  1976. to the other. If you keep your thumb upright and point East 
  1977. with your index finger, you middle finger will be pointed 
  1978. North. Just like the Tumble Axes.
  1979.  
  1980.                          Up
  1981.            East          !
  1982.             \            !
  1983.              \           !
  1984.               \          !
  1985.                \         !
  1986.                 \        !
  1987.                  \       !
  1988.                   \      !
  1989.                    \     !
  1990.                     \    !
  1991.                      \   !
  1992.                       \  !
  1993. North                  \ !
  1994. ------------------------\!
  1995.  
  1996.                          The Tumble Axes
  1997.  
  1998.     Now twist your wrist and turn around. Naturally your
  1999. index finger (the yellow, East, tumble axis) can be pointed in 
  2000. any direction. You can tilt it up or down, or swing it left or
  2001. right. Your index finger is said to have two degrees of 
  2002. freedom, so far as pointing is concerned.
  2003.  
  2004.                                                                         10-6
  2005.  
  2006.     If you decide to point the East tumble axis (yellow) in a
  2007. particular direction -- towards a lamp, for example -- you will
  2008. suddenly find that the thumb and middle finger (purple and 
  2009. white, the Up and North axes) can only be rotated around 
  2010. the East axis, so long as you hold them at right angles. 
  2011. These axes are reduced to one degree of freedom.
  2012.  
  2013.     Once you decide on an angle for one of the two
  2014. remaining axes, say North (white), then the last axis (Up, 
  2015. purple, your thumb) is also fixed, having no degree of 
  2016. freedom at all.
  2017.  
  2018.     The paint on your hand should be dry enough now that
  2019. we can go back to Sculpt Animate, where the Tumble Axes 
  2020. for one vertex of your path have been waiting patiently. We 
  2021. will assume that they are still in their original orientation.
  2022.  
  2023.     While the MODIFY INDICATED TUMBLE requester is
  2024. present, you can use the rotate gadgets in each Tri-View 
  2025. window to twist these tumble axes. For instance, click the
  2026. counterclockwise rotate gadget in the North window a few 
  2027. times, then click the same gadget in the Down window 
  2028. several times. The yellow axis will be tilted up a bit, then
  2029. rotated towards the North. The white axis will still be level.
  2030.  
  2031.     In addition to rotating, you will notice that each axis line
  2032. has become visible in the one window where it couldn't be 
  2033. seen before. As they are rotated, the axes will grow and 
  2034. shrink in various windows according to their orientation. 
  2035. This provides additional visual feedback.
  2036.  
  2037.     Yet another change will occur when you first rotate the
  2038. Tumble Axes for a particular vertex. This change takes place 
  2039. in the MODIFY TUMBLE requester itself. The toggle 
  2040. gadget titled 'Method:', which was previously marked 
  2041. INTERPOLATED, will change to SPECIFIED. This means 
  2042. that the tumble you have set for this vertex will be used.
  2043. Otherwise, Sculpt Animate will try to guess (interpolate) the
  2044. correct tumble by picking an orientation between the two 
  2045. adjacent SPECIFIED tumbles. You may click the toggle 
  2046. gadget back to INTERPOLATED if you change your mind.
  2047.  
  2048.                                                                         10-7
  2049.  
  2050.     To visualize the effect of the change we just made to the
  2051. Tumble Axes, let us abandon our poor man in the desert and 
  2052. take up the case of a search plane trying to find him. Let's 
  2053. say the plane has been built facing East, with the wings 
  2054. level.
  2055.  
  2056.     If this plane were to fly along the path we've been
  2057. working with, then when it reached this location on the path 
  2058. its nose would be pointed up a bit and it would be pointed 
  2059. somewhat North of East, with the wings still level. In other 
  2060. words, it would be positioned just like the Tumble Axes for 
  2061. this vertex.
  2062.  
  2063.                      \ Purple
  2064.                       \         
  2065.                        \     
  2066.        White            \  
  2067.             -------------\--------------- Yellow
  2068.  
  2069.                 Tumble Axis Relationship
  2070.  
  2071.     Of course, if you only set the Tumble Axes for this one
  2072. vertex, then the plane will probably not fly very naturally.
  2073. As we have seen, you don't need to set a tumble axis for 
  2074. every vertex on the path, just for certain important locations, 
  2075. but you almost certainly need to set more than one. For 
  2076. instance, you will probably want to specify the tumble for 
  2077. the first and last position on a path.
  2078.  
  2079.     Let's imagine that you have created a new "S" curve path
  2080. for the airplane. (This can be done with a two-know spline, 
  2081. try it!) Typically, a plane will enter this type of maneuver 
  2082. flying straight and level, then tilt its wings in the direction of
  2083. the first turn (called "banking"), level out again between
  2084.  
  2085.                                                                         10-8
  2086.  
  2087. turns, bank the other way into the second turn and finally 
  2088. level out again.
  2089.  
  2090.     Likely places for specifying the tumble are the first and
  2091. last vertices, the midpoint between curves, and the steepest
  2092. portion of the bank in the middle of each curve.
  2093.  
  2094.     The first, last, and middle tumbles are easy, since you
  2095. only have to rotate around one axis. Just indicate each of 
  2096. these vertices and call MODIFY INDICATED TUMBLE, 
  2097. then rotate the axes for that vertex in the Down window until 
  2098. the yellow (East) axis is pointing along the path.
  2099.  
  2100.     Setting the tumble in the middle of the curve is a little
  2101. harder. It's a good example of a typical tumble axis 
  2102. problem. You want the yellow axis to point along the path 
  2103. here, too, but you want the other two axes to be tilted 
  2104. sideways, to lean the airplane into the curve. So far you've 
  2105. been working in the Down window, but now you need to 
  2106. move to one of the side views, North or West. Go to the 
  2107. side view where the yellow axis looks shortest, and rotate 
  2108. the axes in the desired direction. If the yellow axis looks the
  2109. same in both side views (the worst case), just pick one at 
  2110. random.
  2111.  
  2112.     If the yellow axis was visible at all in the view you used,
  2113. you will notice something a little troublesome. The rotate 
  2114. gadgets in a Tri-View window can only rotate in the 
  2115. window's frame reference. Because of this, if the yellow 
  2116. axis is visible, there's a good chance that it will tilt either up
  2117. or down when you rotate the other two axes. To correct this 
  2118. drift, go to the other side view and straighten the yellow 
  2119. axis. This may 'unwind' your initial tilt a bit, but by 
  2120. switching back and forth a couple of times you will get the 
  2121. right position. When you get the right amount of bank, you 
  2122. may also have to correct the heading in the Down window.
  2123.  
  2124.     This is a general rule. If you want to rotate the Tumble
  2125. Axes around one axis, use the window where the axis is 
  2126. least visible. If that axis drifts anyway, correct it in the other
  2127. two windows. By repeating this cycle a couple of times, 
  2128. you can get the right orientation fairly easily.
  2129.  
  2130.                                                                         10-9
  2131.  
  2132.     There's a trick that you can try until you get used to this.
  2133. If you want to rotate to a certain position around one axis, 
  2134. align that axis with the Tri-View so that it disappears in one
  2135. window. You can now set the rotation easily in that 
  2136. window. Once this is done, it is fairly simple to point the
  2137. remaining axis in the correct direction. In the case of our
  2138. airplane, for instance, you would tilt it up or down in one of 
  2139. the side views, then set its heading in the Down view. You 
  2140. will still get some interplay, but it shouldn't be bad unless 
  2141. the plane climbs or dives radically.
  2142.  
  2143.     Once you have set the tumble axes for some
  2144. representative locations, it is a good idea to check the 
  2145. vertices in-between. The NEXT and PREVIOUS gadgets 
  2146. on the MODIFY TUMBLE requester let you step forwards 
  2147. and backwards along the path, examining the tumble axes to 
  2148. see if they are being interpolated the way you expected. In 
  2149. this way you can 'test fly' the path. If the axes seem to 
  2150. stray, move to the vertex where they seem most out of line 
  2151. and set it as you wish, then examine surrounding vertices to 
  2152. make sure they fell into line, too.
  2153.  
  2154.     A useful gadget that hasn't been mentioned yet is
  2155. MATCH LAST. It will swing the Tumble Axes around to 
  2156. be aligned with the last set of axes that you positioned with 
  2157. the requester. If you are working your way along a path 
  2158. with the intent of rotating the axes a specific amount for each
  2159. vertex, then you will find that the interpolation often 
  2160. anticipates you, messing up the count. To ensure a good 
  2161. count, click MATCH LAST before setting each vertex.
  2162.  
  2163.     MATCH LAST can also be used to copy Tumble Axes
  2164. from one vertex to another. This is good for matching the 
  2165. start and end of a path for looping animations, or for 
  2166. copying Tumble Axes from one path to another. First, call 
  2167. MODIFY INDICATED TUMBLE for the 'source' vertex, 
  2168. then click both rotate gadgets in any window, once each. 
  2169. This does nothing, but makes the program remember that 
  2170. location's tumble. Finally, go to the 'destination' vertex and
  2171. click MATCH LAST.
  2172.  
  2173.                                                                         10-10
  2174.  
  2175.     For more precise work, note that the rotate gadgets may
  2176. be used with the Amiga and ALT keys as usual. The normal 
  2177. rotation is 5 degrees per click. When clicked with the left 
  2178. Amiga or ALT key pressed, rotation is 1 and 0.1 degrees,
  2179. respectively. The right Amiga and ALT keys make rotation 
  2180. 45 and 180 degrees per click, respectively.
  2181.  
  2182. Motion hierarchies
  2183.  
  2184.     We have seen how to create a special 'path' object and
  2185. set its Tumble Axes, to make another object 'attached' to the 
  2186. path appear in a specific location and posture in every frame 
  2187. of an animation. So far, we have neglected to mention how 
  2188. the object is attached to the path.
  2189.  
  2190.     We have also see that objects and parts of objects may
  2191. be organized in a scene's hierarchy, so that objects may be
  2192. 'attached' to one another with the lower level objects 
  2193. 'following' the higher level ones. We have hinted that 
  2194. motion can be placed in the hierarchy somehow.
  2195.  
  2196.     By now, you've probably guessed how -- just put a path
  2197. in the hierarchy! Any object that is named as a path's 
  2198. offspring will follow that path.
  2199.  
  2200.     There is a special command for naming paths: EDIT
  2201. NAME INDICATED PATH. Before calling it, indicate a 
  2202. vertex on the path you want to name. Except for the title, the
  2203. requester that pops up is identical to NAME SELECTED 
  2204. VERTICES, with gadgets for traversing the hierarchy and 
  2205. entering a new name. When you click on the OK gadget, the 
  2206. path will be names and place in the hierarchy.
  2207.  
  2208.     If a name in the hierarchy names a path, then when it is
  2209. in the 'current' slot the label 'path' will be shown with an 
  2210. arrow pointing to the name.
  2211.  
  2212.     A path differs slightly from other objects in that only the
  2213. one path can be given a particular name on any given level. 
  2214. If any other vertices already have the exact same name, they 
  2215. will be 'unnamed' when the path is named.
  2216.  
  2217.                                                                         10-11
  2218.  
  2219.     On the other hand, if you give some vertices a path's
  2220. name, then the path will just be demoted to 'vertices' in the
  2221. hierarchy.
  2222.  
  2223.     Any number of named objects can be attached to a path,
  2224. using EDIT NAME SELECTED VERTICES to name them 
  2225. as offspring of the path. All the offspring will move as a 
  2226. unit. Consider this example:
  2227.  
  2228.                                         !---------- fuselage
  2229.                                         !
  2230.                                         !
  2231.  S_path ---------!---- airplane --------!----- wings
  2232.                  !                      !
  2233.                  !                      !
  2234.                  !--- pilot             !---- etc...
  2235.  
  2236.     The airplane, which is composed of a fuselage, wings,
  2237. etc., is attached to the object names 'S_path'. If this object 
  2238. is a path, then the airplane will follow it. The object named
  2239. 'pilot' will also follow along the path, moving as though it 
  2240. were a part of the airplane.
  2241.  
  2242.     This shows that you can group objects under a single
  2243. name and attach that name to a path, or just attach all the 
  2244. parts directly to the path. It's just a matter of convenience. 
  2245. The former scheme is often easier, but either way there are 
  2246. some important considerations about where parts will appear
  2247. relative to each other and to the path. The next section 
  2248. explores this.
  2249.  
  2250.     We have been describing paths as a special sort of
  2251. object. Since objects can be attached to paths, can't paths be
  2252. attached to paths? Yes! The 'lower' path and its object will 
  2253. simply follow the 'upper' path, like a flea walking on a 
  2254. dog's back. This is called 'hierarchical motion', and it 
  2255. allows very complex motions to be described easily.
  2256.  
  2257.     As an example, let's imagine a simplified orbital model
  2258. of the Earth/Moon/Sun system:
  2259.  
  2260.                                                                         10-12
  2261.  
  2262.  earthpath -------!------ earth
  2263.                   !
  2264.                   !--- moonpath ------- moon
  2265.  
  2266.     The name 'earthpath' can be given to a 364 vertex
  2267. circular path around the Sun. This path's name goes in the 
  2268. top level of the hierarchy. Two objects are attached to
  2269. 'earthpath': one is the earth object itself, the other is
  2270. 'moonpath', a 28 vertex circular path around the earth. The 
  2271. moon is attached to 'moonpath' (i.e., its offspring).
  2272.  
  2273.     Notice that the number of days per year and month have
  2274. been 'fudged'. This allows a smoothly looping 364 frame 
  2275. animation (hard disk recommended!). More accuracy would 
  2276. require much denser paths, and a 119802 frame loop!
  2277.  
  2278.     You might wonder why the sun isn't in the hierarchy. It
  2279. doesn't really have to be, since it doesn't move. Of course, 
  2280. it could be named in the top level for editing purposes, if you
  2281. like.
  2282.  
  2283.     A better question might be how to get the two paths to be
  2284. centered around the Sun and Earth objects correctly, and 
  2285. how to get the planets to follow their paths accurately. This 
  2286. is not a matter of placement in the Tri-View, as we'll see 
  2287. in the next section.
  2288.  
  2289.     If you're curious, this model could be done fairly close
  2290. to scale in Sculpt Animate, but it would be snug, and the 
  2291. scales are so large it would be hard to make a very exciting
  2292. animation with it. Chapter 13 will show you how to use 
  2293. coordinates to scale things. Using two decimal places in the
  2294. coordinates window, the Moon could have a radius of 1.00 
  2295. units. The Earth's radius would then be 3.67, the Sun's 
  2296. 400.36. Moonpath's radius would be 221.14, and 
  2297. earthpath's would be 86043.84. The model isn't perfectly 
  2298. accurate, but it far exceeds the resolution of the Amiga's 
  2299. screen.
  2300.  
  2301.                                                                         10-13
  2302.  
  2303.     By the way, these dimensional scales were derived from
  2304. the CRC Handbook of Chemistry and Physics, Robert C. 
  2305. Weast, ed. (CRC Press, 1975), pp. F171+.
  2306.  
  2307. Local Origins
  2308.  
  2309.     So far, we have taken it for granted that when an object
  2310. is attached to a path, it moves 'along' the path, matching the
  2311. location of each path vertex in turn. But what does that 
  2312. mean exactly?
  2313.  
  2314.     As our man runs in the desert, we might expect him to
  2315. run 'on' his path, so the soles of his feet match each path 
  2316. vertex in turn. If the airplane is moving along the path, we 
  2317. might expect something different.
  2318.  
  2319.     The point is, Sculpt Animate has no way to guess what
  2320. we expect, so we have to specify a certain point, relative to 
  2321. any object, that will coincide with the 'active' vertex of the
  2322. object's path in any given frame.
  2323.  
  2324.     This point is called the object's local origin. It is
  2325. analogous to the guide pin on an old-fashioned slot car. 
  2326. While the car might swing wildly about rounding curves, the 
  2327. guide pin always follows the slot precisely (until it falls out).
  2328. The guide pin, like a local origin, serves a dual purpose. It 
  2329. holds the car 'object' to its 'path', and it acts as a pivot for
  2330. the car's 'tumble'.
  2331.  
  2332.     When an object is created, its local origin matches the
  2333. center of the Sculpt universe, the 'absolute origin'. When 
  2334. you run Sculpt Animate, this point will be in the center of the
  2335. Tri-View.
  2336.  
  2337.     Because of this, if you simply run the program and begin
  2338. building an object to animate, the object's local origin will
  2339. probably wind up somewhere near the object's middle. This 
  2340. may do perfectly well for simple animations.
  2341.  
  2342.     When you begin to animate multiple objects, or objects
  2343. that need to tumble or pivot in a particular fashion, then you
  2344.  
  2345.                                                                         10-14
  2346.  
  2347. will need to remember to set a local origin for each animated object.
  2348.  
  2349.     To do this, first move the cursor to the place, relative to
  2350. the object, where you want its local origin to be. Next, 
  2351. execute the menu command EDIT MODIFY LOCAL 
  2352. ORIGIN. A familiar looking hierarchy requester will pop 
  2353. up. In this requester, find the name of the object in question 
  2354. and move it into the current name slot. Finally, click on the 
  2355. SET gadget. The local origin will be set to coincide with the
  2356. cursor position. If you decide not to set a local origin, click
  2357. CANCEL.
  2358.  
  2359.     If, for any reason, your object's motion is not what you
  2360. expected, be sure to double-check its local origin. You can
  2361. do this by making its name current in the MODIFY LOCAL 
  2362. ORIGIN requester and clicking SHOW.
  2363.  
  2364.     A local origin that was placed with SET will stay where
  2365. it is in the Tri-View, no matter how you move or modify the
  2366. associated object's vertices. This lets you fine tune and edit 
  2367. an object even after its local origin is set.
  2368.  
  2369.     If you actually move an object, however, you may want
  2370. the object's local origin to move along with it. If you think 
  2371. an object will be moved around after you set its local origin 
  2372. (for instance, if you will be loading it into several different
  2373. scenes), then you can lock the local origin to a particular 
  2374. vertex by indicating the vertex, then using the LOCK gadget 
  2375. instead of SET. Whenever that vertex is moved in the Tri-
  2376. View, any local origin locked to it will follow.
  2377.  
  2378.     Usually, the vertex you LOCK to will be one of the local
  2379. origin's named vertices, but it doesn't have to be. This is
  2380. especially true of paths used in hierarchical motion. If you 
  2381. were to LOCK a path's local origin to one of its own 
  2382. vertices, it might not follow the parent path as you wish, but 
  2383. you cannot give any other vertex the path's name. In this 
  2384. case, the path's local origin would probably be locked to a 
  2385. vertex of some object on the same level as the path.
  2386.  
  2387.                                                                         10-15
  2388.  
  2389.     Remember that you only need to set the local origin for
  2390. objects that move, and that the local origin is part of the 
  2391. object, not of the path it follows. A path only needs a local
  2392. origin if it follows another path.
  2393.  
  2394.     For instance, take the orbital example of the last section.
  2395. 'Earthpath' is highest in the hierarchy, and it does not move 
  2396. in the universe. It does not need a local origin. 'Moonpath', 
  2397. as well as the 'Earth' and 'Moon' objects, all move, so they 
  2398. all need local origins.
  2399.  
  2400.     In the orbital example, it would be simplest to select each
  2401. of the objects in turn, call SNAP CURSOR TO CENTER, 
  2402. and SET the object's local origin.
  2403.  
  2404.     Each of these objects is either circular of spherical, so
  2405. it makes sense for their centers to track the paths. This is 
  2406. because a spheres 'center of gravity' tends to be at its 
  2407. center. Objects in 'free fall' will always tumble about their
  2408. center of gravity.
  2409.  
  2410.     If an object is irregular, the command SNAP CURSOR
  2411. TO CENTROID may place the cursor near where the center 
  2412. of gravity would be in real life. This depends on 
  2413. the assumption that the vertices of the object are distributed the
  2414. same as the real object's mass would be, which is often not correct.
  2415.  
  2416.     Most people can learn to guess where an object's center
  2417. of gravity should be. If you can pick the object up, just feel 
  2418. for its center of balance. In some cases, there is a rule of 
  2419. thumb to determine the center of gravity of an object. For 
  2420. example, on an airplane, the center of gravity usually lies 
  2421. about one third of the way from the leading edge to the 
  2422. trailing edge of the wing, except in unorthodox designs, like
  2423. canards.
  2424.  
  2425.     If the object is not in free fall, you might not want to
  2426. place the local origin at the center of gravity. A robot arm, 
  2427. for instance, is often mounted to the floor. It would almost
  2428. certainly have its local origin at its shoulder bearing. For
  2429. another example, recall the slot car analogy. The slot car's
  2430.  
  2431.                                                                         10-16
  2432.  
  2433. guide pin is usually at the car's front end, well ahead of the
  2434. center of gravity. This is why slot cars often 'fishtail' as 
  2435. they go through turns.
  2436.  
  2437.     For realistic motion, you should always try to find a real
  2438. life counterpart to the object you are modeling, and think of 
  2439. it in terms of its 'path', 'local origin', and 'tumble'. By
  2440. examining reality, you can find the most effective way to 
  2441. devise the animated motions you want. If realism is not 
  2442. important, you can do just about anything you please!
  2443.  
  2444.     By now you will have realized that what you see in the
  2445. Tri-View as a static scene could represent a complicated 
  2446. animation. The next chapter will explain how to get from 
  2447. one to the other.
  2448.  
  2449.                                                                         10-17
  2450.  
  2451.                                 CHAPTER 11
  2452.  
  2453.                            CREATING AN ANIMATION
  2454.  
  2455.     In the preceding chapter we saw how to define a motion
  2456. path in Sculpt Animate, but a motion path does not make an
  2457. animation by itself.
  2458.  
  2459.     For Sculpt Animate to construct an animation, it must go
  2460. through an automated sequence of steps, beginning with one 
  2461. or more scenes which you create to describe the animation's
  2462. movement, and ending, in most cases, with a compressed 
  2463. sequence of images that may be loaded into RAM and played 
  2464. back as an animation.
  2465.  
  2466.     This chapter introduces a facility called a 'Take'. The
  2467. Take is a control panel which lets you make choices about 
  2468. how the animation will be built.
  2469.  
  2470.     This chapter will also explain how a few scenes, or only
  2471. one, can be used by the Take to create the many images that 
  2472. an animation needs. At last you will be able to make your 
  2473. three dimensional objects move.
  2474.  
  2475. The Take
  2476.  
  2477.     In the motion picture industry, a 'take' is a scene or
  2478. portion of a scene that is photographed without interruption.
  2479. Clearly a lot of organizational effort is required for a 
  2480. successful take.
  2481.  
  2482.     In the world of Sculpt Animate, the Take is a special file
  2483. which contains information needed to coordinate and control 
  2484. the construction of an animated sequence. For instance, it 
  2485. contains information about where each file associated with 
  2486. the Take is to be stored. It also stores data relating to the
  2487. animation's imaging mode, screen size, etc., so that all of 
  2488. the scene's frames are rendered consistently.
  2489.  
  2490.                                                                         11-1
  2491.  
  2492.     A number of other data are also kept in the take. Many
  2493. of the Take's controls may be set directly by you. Other
  2494. coordinating actions are performed by the Take automatically 
  2495. as you proceed. These actions and settings will all be 
  2496. explained in this chapter and the next.
  2497.  
  2498.     Before you begin working on an animation, you must
  2499. first specify the name of the Take. This name will be used to
  2500. prefix all of the files that are created in association with this
  2501. Take, so that different Takes cannot be confused.
  2502.  
  2503. !==========================================================!
  2504. !                     MODIFY TAKE                          !
  2505. !                                                          !
  2506. !                   Take mode: GLOBAL                      !
  2507. !                                                          !
  2508. ! Number of frames:   10         RAM animation:  YES       !
  2509. !                                                          !
  2510. ! Preview size:   FULL           Save images:  YES         !
  2511. !                                                          !
  2512. ! Motion blur:   NO             Loop mode:  LOOP           !
  2513. !                                                          !
  2514. !              Animation drawer !----------------------!   !
  2515. !                               !----------------------!   !
  2516. !              Foreground:      !----------------------!   !
  2517. !                               !----------------------!   !
  2518. !              Background:      !----------------------!   !
  2519. !                                                          !
  2520. ! SAVE GLOBAL SCENE  LOAD GLOBAL SCENE  DELETE ALL IMAGES  !
  2521. !                                                          !
  2522. !    PREVIEW            RENDER ALL             OK          !
  2523. !==========================================================!
  2524.  
  2525.                Modify Take, GLOBAL mode
  2526.  
  2527.     To set the Take's name, execute the command PROJECT
  2528. LOAD TAKE. The familiar file requester will pop up. If 
  2529. you are continuing to work with a previously created Take, 
  2530. then select it in the normal way, from the list of files that is
  2531. displayed, otherwise just type the new name into the 
  2532. appropriate slot. Click the OK gadget to continue with the 
  2533. new Take. If you change your mind about loading a new 
  2534. Take, click CANCEL to exit without doing anything.
  2535.  
  2536.     You will find that you can still use Sculpt Animate just as
  2537. before. You can load, edit, and save scenes as usual, and 
  2538. create and save images. As far as the normal use of the 
  2539. program is concerned, there is no difference.
  2540.  
  2541.                                                                         11-2
  2542.  
  2543.     By naming the take, however, you have activated an
  2544. extremely powerful command: EDIT MODIFY TAKE, 
  2545. which had previously been ghosted. Execute this command 
  2546. and look at the requester that pops up. The MODIFY TAKE 
  2547. requester is the control panel from making animations.
  2548.  
  2549.     When the MODIFY TAKE requester comes up for
  2550. the first time, it is in GLOBAL mode. At the top center of 
  2551. the requester, there is a toggle gadget which switches the
  2552. requester between GLOBAL and its other mode, FRAME.
  2553.  
  2554. !=======================================================!
  2555. !                     MODIFY TAKE                       !
  2556. !                                                       !
  2557. !             Take mode:  FRAME                         !
  2558. !                                                       !
  2559. !             Current frame:    1                       !
  2560. !                                                       !
  2561. ! Key frame:     NO              Duration:    (2)       !
  2562. !                                                       !
  2563. !            Image drawer: !-------------------------!  !
  2564. !                          !-------------------------!  !
  2565. !            Scene drawer: !-------------------------!  !
  2566. !                          !-------------------------!  !
  2567. !                                   10                  !
  2568. !                !=!=!=!=!=!=!=!=!=!=!                  !
  2569. !                ! ! ! ! ! ! ! ! ! ! !                  !
  2570. !                !=!=!=!=!=!=!=!=!=!=!                  !
  2571. !                /\                                     !
  2572. !  SAVE KEY FRAME SCENE          LOAD KEy FRAME SCENE   !
  2573. !                                                       !
  2574. !   RENDER FRAME      DELETE CURRENT IMAGE     OK       !
  2575. !=======================================================!
  2576.  
  2577.                    Modify Take, FRAME mode
  2578.  
  2579.     These two modes look radically different, because they
  2580. permit you to deal with the animation in two entirely 
  2581. different ways. The GLOBAL mode contains settings and 
  2582. commands for the entire animation, while FRAME mode 
  2583. provides controls that let you deal with each frame of the
  2584. animation individually, on a frame by frame basis.
  2585.  
  2586.     To get a better grip on this distinction, examine each
  2587. mode of the requester. First, set the mode toggle gadget 
  2588. back to the GLOBAL mode.
  2589.  
  2590.     It should not be hard to imagine that each control that is
  2591. visible in this mode has some function relating to the whole
  2592. animation. For instance, the box marked 'Number of
  2593.  
  2594.                                                                         11-3
  2595.  
  2596. frames' is obviously where you type in how many images 
  2597. you want the program to create for your animation.
  2598.  
  2599.     Choosing the best number of frames can be a
  2600. complicated matter, involving the desired playing time, 
  2601. display duration of each frame, memory considerations, etc. 
  2602. For the sake of this discussion, type in the number 10.
  2603.  
  2604.     If you click the GLOBAL/FRAME toggle gadget again,
  2605. you can take a look at the requester's FRAME mode. In this 
  2606. mode, everything you do affects individual frames of the 
  2607. animation.
  2608.  
  2609.     You should see a row of ten boxes stretched across the
  2610. lower middle portion of the requester, looking suspiciously 
  2611. like a strip of photographic film. This is the film strip 
  2612. gadget. Each of these boxes represents a frame of the 
  2613. animation. By clicking in a box, you make that frame the 
  2614. 'current frame'. This will be shown by the number in the 
  2615. 'current frame' slot, and by a small arrow beneath the 
  2616. filmstrip.
  2617.  
  2618.     Another control in this mode is the 'duration' setting.
  2619. This is the display duration that we mentioned a moment 
  2620. ago. The number in the box is how long, in 'jiffies', the 
  2621. current frame's image will be displayed during playback. 
  2622. One 'jiffy' is 1/60th of a second. Longer frame durations 
  2623. make the animation seem slower. We will learn more of this 
  2624. later in this chapter and the next.
  2625.  
  2626.     Before we continue, notice that you haven't seen any
  2627. command to save the Take. All the data associated with the 
  2628. take is saved automatically whenever you click OK to get out 
  2629. of the MODIFY TAKE requester, and also when you start an 
  2630. animation render.
  2631.  
  2632. Two kinds of animation
  2633.  
  2634.     Just as there are two different modes to the Take,
  2635. GLOBAL and FRAME, there are two different ways you
  2636.  
  2637.                                                                         11-4
  2638.  
  2639. can create motion in Sculpt Animate, global animation and 
  2640. key frame animation.
  2641.  
  2642.     Global animation is specified with a single scene, called
  2643. a 'global scene'. This scene contains motion paths and other
  2644. objects that have their effect globally, affecting every frame 
  2645. of the animation. The global scene is also the best place to 
  2646. put objects that don't move at all, since this ensures that they
  2647. will be present in every frame.
  2648.  
  2649.     Key frame animation is specified by two or more scenes.
  2650. A pair of key frames can contain objects that change position 
  2651. and shape from one key frame to the next. Key frames do 
  2652. not make any use of motion paths, and they only affect a 
  2653. particular group of frames.
  2654.  
  2655.     As you might expect, creating global animations
  2656. demands extensive use of the Take's GLOBAL mode, and 
  2657. key frame animations similarly are tied to the FRAME mode. 
  2658. There is nothing sacred about this linkage, however. Both 
  2659. the GLOBAL and FRAME modes provide tools that can be 
  2660. used for any animation.
  2661.  
  2662.     Indeed, a particular Take may have motion and objects
  2663. that are defined in the global scene, and others that are 
  2664. defined in key frame scenes. In creating the animation's 
  2665. images, these two separate forms of animation are essentially
  2666. 'played back' together.
  2667.  
  2668.     When the global and key frame animation methods are
  2669. used together this way, one or the other may take precedence 
  2670. in determining certain placements and values. In general, 
  2671. any key frame scene in its World illumination and sky settings, 
  2672. as well as observer lens and tilt. The global scene's 
  2673. Location and Target placements can be forced to take 
  2674. precedence by entering their names in the global scene's 
  2675. hierarchy. This is explained more fully in the next chapter.
  2676.  
  2677.                                                                         11-5
  2678.  
  2679. Global Animation
  2680.  
  2681.     You already have seen how to create scenes that contain
  2682. objects which are attached to paths in a motion hierarchy. In
  2683. essence, this is all there is to global animation, but in practice
  2684. there is a bit more that you need to know.
  2685.  
  2686.     In the Take requester, the two items that are essential to
  2687. global animation are the buttons marked SAVE GLOBAL 
  2688. SCENE and LOAD GLOBAL SCENE, in the GLOBAL 
  2689. mode.
  2690.  
  2691.     As you build a global animation, you piece together your
  2692. objects and paths in a single scene. This scene may be saved 
  2693. and loaded just like any other, or pieces together from a 
  2694. number of other scenes. It is very much like building an 
  2695. animated machine of some sort.
  2696.  
  2697.     You cannot make your scene's 'machine' run, however,
  2698. until you load a Take and use SAVE GLOBAL SCENE in 
  2699. the MODIFY TAKE requester to save it. This tells Sculpt 
  2700. Animate to save the scene with a special file name associated 
  2701. with the Take. File names are discussed in the next chapter.
  2702.  
  2703.     If you want to load in a previously saved global scene to
  2704. work with, use the GLOBAL mode button marked LOAD 
  2705. GLOBAL SCENE, then click OK to get out of the Take 
  2706. requester. This command will clear the Tri-View 
  2707. automatically, so you don't need to execute an ERASE ALL 
  2708. first.
  2709.  
  2710. An example global animation
  2711.  
  2712.     Enough explanation. It's time for you to make an
  2713. animation. We have already mentioned orbital paths on 
  2714. something of a grand scale. For this animation, we will do
  2715. something much simpler -- make a cube fly around a circular 
  2716. path.
  2717.  
  2718.                                                                         11-6
  2719.  
  2720.     To start, clear the Tri-View with EDIT ERASE ALL.
  2721. Execute PROJECT LOAD TAKE and enter a new name for 
  2722. the Take. Any name will do, try 'global'.
  2723.  
  2724.     Now select the Down window and add a circle with 36
  2725. vertices. Select one vertex and indicate an adjacent vertex 
  2726. with the cursor. now execute the command EDIT DO 
  2727. MAKE PATH. This will be our 'orbital' path.
  2728.  
  2729.     Next, make a cube with the command EDIT ADD
  2730. CUBE. Make sure you have deselected the vertex on the 
  2731. path and then select the cube. Call EDIT DO EXPAND and 
  2732. shrink the cube to a size that is fairly small compared with 
  2733. the circle.
  2734.  
  2735.     People will usually want to grab the cube and place it
  2736. 'on' the path somehow, but you don't need to worry about 
  2737. where the cube is placed. In the animation, it will 
  2738. automatically be shown on the path we attach it to.
  2739.  
  2740.     We do need to set the cube's local origin, though. We'll
  2741. do this in a moment, so leave the cube selected and move the 
  2742. cursor to its center with the command EDIT SNAP 
  2743. CURSOR TO CENTER.
  2744.  
  2745.     Now we must set up a hierarchy. First, execute the
  2746. command EDIT NAME SELECTED VERTICES. Enter the 
  2747. new name 'orbit', press return, and click on the 
  2748. OFFSPRING box. Now enter the name 'cube' and press return.
  2749.  
  2750.     We have built a pretty simple hierarchy. The parent is
  2751. called 'orbit', but nothing has that name yet, it is just holding 
  2752. a place in the hierarchy. 'orbit' has only one child, called
  2753. 'cube'. Now click on the OK button to give that name to 
  2754. each vertex of the cube.
  2755.  
  2756.     We will want the center of the cube to travel around the
  2757. circle, so we must set a local origin for the cube. The cursor
  2758. should still point to the center of the cube, so execute the
  2759. command EDIT MODIFY LOCAL ORIGIN and click on the 
  2760. SET button. Leave the requester by clicking OK.
  2761.  
  2762.                                                                         11-7
  2763.  
  2764.     Next we must name the path. Move the cursor to
  2765. indicate one of the vertices on the circle and execute the 
  2766. command EDIT NAME INDICATED PATH. 'Cube' 
  2767. should be in the current slot where we left it. Click on the
  2768. Parentage box, so that 'orbit' becomes the current name, 
  2769. then click on OK to leave the requester, giving the name 
  2770. 'orbit' to the circular path.
  2771.  
  2772.     Our motion hierarchy is now complete, the cube is
  2773. attached to the circular path. If you'd like, you can double 
  2774. check this by calling any hierarchy command, and seeing 
  2775. that 'orbit' names a path and 'cube' names vertices. Be 
  2776. careful, though. When you are just looking at the hierarchy
  2777. remember to leave the requester by clicking CANCEL, or 
  2778. you might do something you didn't intend to.
  2779.  
  2780.     Before rendering any animation, you must see that the
  2781. observer's location and target are placed appropriately. 
  2782. Position the cursor above the place of the orbit, at a distance 
  2783. of two or three times the size of the circle, then call 
  2784. OBSERVER LOCATION. Next position the cursor in the 
  2785. middle of the circle and call OBSERVER TARGET.
  2786.  
  2787.     We have now specified the global scene completely, and
  2788. we need to save it. While it is fine to save your interim work
  2789. using SAVE SCENE, the finished global scene must be 
  2790. saved through the MODIFY TAKE requester.
  2791.  
  2792.     You have already given the take a name, so call up the
  2793. EDIT MODIFY TAKE requester and click on SAVE 
  2794. GLOBAL SCENE. With the scene safely on disk, you can 
  2795. set other take controls.
  2796.  
  2797.     Your final task is to set the number of frames. The path
  2798. has 36 vertices, so click on the 'Number of frames' box, 
  2799. delete the previous number, type 36, and hit return. When 
  2800. you click OK, the take file will automatically be saved.
  2801.  
  2802.     Congratulations! You have just prepared your first
  2803. animation, now let us see how you can watch it move.
  2804.  
  2805.                                                                         11-8
  2806.  
  2807.     Later in this chapter, we'll see how to render an
  2808. animation in full color, and compress the images for 
  2809. playback from RAM. This process can be time consuming, 
  2810. especially for large animations. In this particular case it 
  2811. would be unrewarding as well, since we've neglected to put 
  2812. a lamp in the scene.
  2813.  
  2814.     Right now, however, all we need to see is the motion of
  2815. the scene, and we aren't particularly interested in keeping the
  2816. results for posterity. For this purpose, Sculpt Animate 
  2817. provides quick preview facility. This facility uses WIRE 
  2818. FRAME mode in low resolution, so it can assemble the 
  2819. animation in a minimum of time and memory.
  2820.  
  2821.     To start the preview, execute the EDIT MODIFY TAKE
  2822. command and make sure that the Take mode is set to 
  2823. GLOBAL. Then click the PREVIEW gadget. Each frame of 
  2824. the animation will be displayed as it is calculated. When all 
  2825. the frames are done, the entire animation will be played
  2826. repeatedly.
  2827.  
  2828.     The initial speed (frame rate) of the playback will depend
  2829. on the duration that you have set for each frame of the 
  2830. animation. In our example, we haven't changed the default 
  2831. setting of 2 jiffies per frame, this means each image will be 
  2832. shown on the screen for 1/30th of a second (1/25th of a 
  2833. second on PAL Amigas).
  2834.  
  2835.                                                                         11-9
  2836.  
  2837.     While the preview is being played, you can press the
  2838. keyboard's top-row digit keys 0 through 9 to modify the 
  2839. speed as follows:
  2840.  
  2841.     Key                Playback Speed
  2842.  
  2843.     0                normal rate
  2844.     2                2 jiffies per frame
  2845.     3                4 jiffies per frame
  2846.     4                8 jiffies per frame
  2847.         5                              16 jiffies per frame
  2848.         6                              30 jiffies per frame
  2849.         7                              60 jiffies per frame
  2850.         8                              120 jiffies per frame
  2851.         9                              240 jiffies per frame
  2852.  
  2853.     Pressing the spacebar will momentarily halt the
  2854. playback, pressing again resumes it.
  2855.  
  2856.     When you want to stop the preview entirely, press the
  2857. right mouse button or the ESC key. The preview screen will 
  2858. be closed, and you will be asked whether you want to 
  2859. unload the preview.
  2860.  
  2861.     If you think you will want to view the preview again
  2862. later in the session, you can answer NO to this question. 
  2863. This causes the preview to be kept in memory. It can be 
  2864. replayed from the Tri-View by executing the command 
  2865. PROJECT SHOW PREVIEW.
  2866.  
  2867.     While the preview data is retained in memory, you will
  2868. have less memory for other things. You can free up this 
  2869. memory at any time by executing the command PROJECT 
  2870. UNLOAD PREVIEW.
  2871.  
  2872.     If your animation is very long, the preview display may
  2873. fail because of insufficient memory. In that case you can 
  2874. return to the MODIFY TAKE requester, select GLOBAL 
  2875. mode, change the 'preview size' gadget from FULL to 
  2876. HALF, and try the preview again. Because the image
  2877.  
  2878.                                                                         11-10
  2879.  
  2880. generated has one fourth the area, the preview will only take 
  2881. about one fourth the memory.
  2882.  
  2883.     Never hesitate to use the preview facility, it is much
  2884. faster than generating a full animation, and it will often show 
  2885. you ways to improve your object motion and placement, as 
  2886. well as your observer's position. The time you save will be 
  2887. well worth this extra step.
  2888.  
  2889. Looking at individual frames
  2890.  
  2891.     When you are working with a global scene, objects and
  2892. paths will be placed however they were constructed. Objects 
  2893. that are to follow paths in the animation might be placed in 
  2894. an entirely different part of the scene as you construct it. In 
  2895. the global scene this is perfectly all right, since an animated
  2896. object will move to the active vertex of its path anyway.
  2897.  
  2898.     As Sculpt Animate generates the images of the
  2899. animation, it will resolve the relationships between objects 
  2900. and paths for every frame, creating a sort of 'working 
  2901. version' of the original scene.
  2902.  
  2903.     If you want to see what this 'working version' of the
  2904. scene looks like in a particular frame, call the MODIFY 
  2905. TAKE requester and click to the FRAME mode. Select any 
  2906. frame of interest, click LOAD KEY FRAME SCENE. This 
  2907. command automatically clears the Tri-View, so you don't
  2908. need to execute an ERASE ALL first. Now lick OK to get
  2909. back to the Tri-View. 
  2910.  
  2911.     What you will see is the scene that Sculpt Animate will
  2912. use to create this frame's image. You can now move and 
  2913. resize the Tri-View to examine various parts of the scene. 
  2914. This allows you to make sure that the animation is 
  2915. proceeding precisely as you expected.
  2916.  
  2917.     When you are looking at an individual frame's working
  2918. scene, you will find that some Tri-View commands will not 
  2919. work as you may expect. For instance, none of the selection 
  2920. or editing functions will work on the global scene's objects.
  2921.  
  2922.                                                                         11-11
  2923.  
  2924. The next section will explain that you are actually in a mode 
  2925. which allows you to edit key frame objects while seeing how 
  2926. they relate to global objects. You just don't have any key 
  2927. frame objects yet.
  2928.  
  2929.     If you want to render an image of a frame's working
  2930. scene, select that frame in the FRAME mode of MODIFY 
  2931. TAKE and then click RENDER FRAME. The image will be 
  2932. rendered in the size and imaging mode that currently applies 
  2933. for the take. This will what was set for the last global or key
  2934. frame scene that was saved before the last DELETE ALL 
  2935. IMAGES command. The full effect of these commands will 
  2936. be explained later.
  2937.  
  2938.     If you want RENDER FRAME to match the preview
  2939. images, set the imaging mode to LO-RES, NO-
  2940. INTERLACE, WIRE FRAME.
  2941.  
  2942. Key frame animation
  2943.  
  2944.     We mentioned in Chapter 1 that there are two ways of
  2945. animating objects: global animation and key frame 
  2946. animation. We have already seen global animation in action. 
  2947. It depends on a single scene, the GLOBAL scene, which 
  2948. describes objects and motion that are to exist throughout the
  2949. animation. It works like a machine, in which groups of 
  2950. vertices run about on tracks.
  2951.  
  2952.     Key frame animation works on a much different,
  2953. somewhat simpler principle. The idea is this: take two 
  2954. scenes that are identical, then change the position of some
  2955. vertices in one of the scenes. The two scenes now describe 
  2956. a motion for those vertices.
  2957.  
  2958.     If this kind of animation is to work, then the scenes that
  2959. describe the motion must be linked to particular frames. 
  2960. These frames are called 'key' frames. The scenes we save 
  2961. for these frames are called key frame scenes.
  2962.  
  2963.     You have to tell Sculpt Animate which frames will be
  2964. key frames. This is done in the FRAME mode of the
  2965.  
  2966.                                                                         11-12
  2967.  
  2968. MODIFY TAKE requester. You simply select the frame 
  2969. you want, then click the 'Key Frame' toggle gadget from 
  2970. NO to YES.
  2971.  
  2972.     Once you have tagged the frame as a key frame, you can
  2973. click SAVE KEY FRAME SCENE. This saves whatever 
  2974. scene is in the Tri-View as the current frame's scene.
  2975.  
  2976.     A key frame scene is created much like any other, by
  2977. editing in the Tri-View. The contents of these scenes must 
  2978. be coordinated in a particular fashion, which relates to how 
  2979. Sculpt Animate uses the key frame scenes.
  2980.  
  2981.     We have said that certain frames will be key frames, so it
  2982. follows that not every frame needs to be a key frame. The 
  2983. position of key frame objects in non-key frames is derived 
  2984. by comparing the two adjacent key frames, one before and 
  2985. one after the current frame. Specific rules are applied which 
  2986. will be explained later.
  2987.  
  2988.     Key frame motion is resolved when Sculpt Animate
  2989. constructs a 'working scene' for the frame that is being 
  2990. rendered. This is the same working scene that we mentioned 
  2991. with respect to global animation. If there is a global scene,
  2992. it will also be resolved and contribute to the frame's image.
  2993.  
  2994.     Even if all of the motion you design is done in key
  2995. frames, it is likely that your animation has some components 
  2996. that do not change in any of the frames. These may be 
  2997. stationary objects like furniture or trees. Objects like this 
  2998. may be placed in the global scene. By keeping these objects 
  2999. in the global scene, you avoid having to worry about them in 
  3000. the key frame scenes, and you reduce the amount of storage 
  3001. required for the Take.
  3002.  
  3003.     As we saw before, you can use the MODIFY TAKE
  3004. gadget LOAD KEY FRAME SCENE to load in a 'working 
  3005. scene' representing the state of the animation in the current
  3006. frame. This command automatically clears the Tri-View, so 
  3007. you don't need to execute an ERASE ALL first. Click OK 
  3008. to get back to the Tri-View.
  3009.  
  3010.                                                                         11-13
  3011.  
  3012.     If there are objects in the global scene, they will now be
  3013. visible in the Tri-View, but they may not be edited or
  3014. changed. If the frame is not a key frame, objects present in 
  3015. the adjacent key frames will also be visible, but not alterable.
  3016.  
  3017.     If, however, you have selected a key frame, that frame's
  3018. scene will be loaded in. Global objects will still be visible so
  3019. that you can use them as a reference for placing key frame 
  3020. objects. When you have finished editing, call MODIFY 
  3021. TAKE again, and click SAVE KEY FRAME SCENE. Of 
  3022. course, only the key frame objects will be saved.
  3023.  
  3024.     We will discuss additional key frame editing techniques
  3025. later in this chapter.
  3026.  
  3027. In-betweening
  3028.  
  3029.     We have said that Sculpt Animate 'resolves' the
  3030. difference between two adjacent key frames, creating 
  3031. motion. This deserves more explanation.
  3032.  
  3033.     Suppose that you specify frame ten and frame twenty to
  3034. be key frames, with no other frames in that interval. 
  3035. Each key frame has its own scene. When Sculpt Animate 
  3036. comes to render an image for a frame that is not a key frame, 
  3037. frame thirteen, for example, it interpolates between the key 
  3038. frames that lie to either side.
  3039.  
  3040.     Suppose that each key frame contained only a single
  3041. vertex, then the interpolation process, or in-betweening, 
  3042. would assume that the vertex moved smoothly from its 
  3043. position in frame ten to its position in frame twenty. In 
  3044. frame thirteen, the vertex is placed 30% of the way along the 
  3045. path.
  3046.  
  3047.     So far so good. Now let us complicate the scenes and
  3048. place two vertices in each key frame. The in-betweening 
  3049. process can be carried out as before, provided that we know 
  3050. which vertex in frame ten corresponds to which vertex in 
  3051. frame twenty. It is up to you to supply the clues that let 
  3052. Sculpt Animate resolve the dilemma. Suppose the two
  3053.  
  3054.                                                                         11-14
  3055.  
  3056. vertices in frame ten are called A and B, and the two vertices 
  3057. in frame twenty are called C and D, then which of the 
  3058. following do you want?
  3059.  
  3060. A            C         A ---------------------- C
  3061.  \          /
  3062.   \        /           
  3063.    \      /      or
  3064.     \    /
  3065.      \  /              B ---------------------- D
  3066.       \/
  3067.       /\
  3068.      /  \
  3069.     /    \
  3070.    /      \
  3071.   /        \
  3072.  /          \
  3073. B            D
  3074.  
  3075. frame 10     frame 20    frame 10            frame 20
  3076.  
  3077.     The second might see preferable, in that the paths do
  3078. not cross, but in three dimensions, the majority of lines do 
  3079. not intersect. If we had more than two vertices, it would 
  3080. become still harder to decide which vertex in one frame
  3081. corresponded to a vertex in the other frame.
  3082.  
  3083.     You could be required to assign a unique name for each
  3084. vertex, but that would be a painful chore if your scene had a
  3085. thousand or more vertices. Fortunately, this is not 
  3086. necessary.
  3087.  
  3088.     It turns out that the vertices and other parts of a scene are
  3089. stored in a particular order as they are created. This order
  3090. remains the same in the scene as long as nothing is added or
  3091. deleted. In particular, the order remains the same whenever
  3092. vertices are moved.
  3093.  
  3094.     In order for key frame animation to work, you need only
  3095. make sure that consecutive key frame scenes are modified 
  3096. copies of the same scene.
  3097.  
  3098.     If this sounds complicated, it could not be easier in
  3099. practice. If there is to be a global scene, you can design it 
  3100. first and save it with SAVE GLOBAL SCENE, this can be 
  3101. helpful in editing key frames, as we mentioned.
  3102.  
  3103.     Now, suppose that our animation has one key frame
  3104. every five frames, so that the key frames are 1, 6, 11, 16, 
  3105. etc. In the MODIFY TAKE requester, go through and mark 
  3106. every fifth frame as a key frame. Now use LOAD KEY
  3107.  
  3108.                                                                         11-15
  3109.  
  3110. FRAME SCENE to load frame number one. There is no key 
  3111. frame data yet, so only the global portion of the frame will 
  3112. be visible in the Tri-View. Assemble the scene using any of 
  3113. the regular Sculpt Animate tools, and save the scene with 
  3114. SAVE KEY FRAME SCENE when you are finished.
  3115.  
  3116.     Scene number one has been saved now, but a copy of it
  3117. is still in the Tri-View. You can manipulate this scene, move 
  3118. or rotate objects, apply the magnet tools, do anything that 
  3119. you wish, but do not create or erase any vertices, edges or 
  3120. faces.
  3121.  
  3122.     If you somehow alter the scene's structure, say by
  3123. accidentally adding a vertex, just use LOAD KEY FRAME 
  3124. SCENE to load in the first frame again.
  3125.  
  3126.     When the scene is to your liking, go back to MODIFY
  3127. TAKE and change the frame number to six, then use SAVE 
  3128. KEY FRAME SCENE to save the scene. Sculpt Animate 
  3129. can not interpolate between frames one and six with no 
  3130. danger of ambiguity, since each vertex, edge and face in key 
  3131. frame one has its matched twin in frame six.
  3132.  
  3133.     You can apply this technique to bridge the gap between
  3134. any two key frames that are separated by a number of non-
  3135. key frames. There is a quick way to check a pair of key 
  3136. frames to make sure their structures match. Just select a 
  3137. frame between them and call LOAD KEY FRAME SCENE. 
  3138. If the structures don't match, an error message will 
  3139. appear. Otherwise, the interpolated scene will be loaded as usual.
  3140.  
  3141.     By now you may think that all of a Take's key frame
  3142. scenes must have the same structure, the same number of 
  3143. vertices, etc. Fortunately, this is not always the case. This
  3144. strict rule permits in-betweening, but if two adjacent frames 
  3145. are both key frames, no in-betweening takes place. Two 
  3146. key frames placed together may be as different as you like.
  3147.  
  3148.     Suppose that you have two animated rabbits, and you
  3149. want one of them to magically vanish after frame 20. Build 
  3150. the scenes as usual for the key frames before frame number 
  3151. 20. Make sure that frame number 20 is a key frame, and
  3152.  
  3153.                                                                         11-16
  3154.  
  3155. save its scene. Now make frame number 21 a key frame 
  3156. also. Erase one of the rabbits in this frame's scene and save 
  3157. it, then continue to construct subsequent key frames, 
  3158. ensuring that their structures match as needed.
  3159.  
  3160. X -------------- X          --------------
  3161.  
  3162. X -------------- X        X ------------- X
  3163.  
  3164. frame 15     frame 20   frame 21        frame 25
  3165.  
  3166.     The rule is simple, whenever you have a frame that is not
  3167. a key frame, the key frame before and the key frame after 
  3168. must be derived from the same scene, with nothing added or 
  3169. removed. Whenever additions or removals are required, you 
  3170. must use two adjacent key frames to make the transition.
  3171.  
  3172. In-Betweening distortion
  3173.  
  3174.     The in-betweening process is very simple, involving
  3175. linear interpolation, but it can produce strange effects. 
  3176. Consider the following case: two key frames, frames 
  3177. number 12 and 18, with no key frames between them. A 
  3178. triangle in frame 18 is identical to the corresponding triangle 
  3179. in frame 12, except that it has been rotated to be a moderate
  3180. angle, say 90 degrees. The in-betweening process for frame 
  3181. 15 is shown below
  3182.  
  3183.           /\                               !\
  3184.          /  \          -----------         ! \
  3185.         /    \          \      /           !  \
  3186.        /      \          \    /            !   \
  3187.       /        \          \  /             !   /
  3188.      /----------\          \/              !  /
  3189.                                            ! /
  3190.                                            !/
  3191.          frame 12       frame 15         frame 18
  3192.  
  3193.                                                                         11-17
  3194.  
  3195.     You can see that at frame 15, the triangle generated by
  3196. the in-betweening process is much smaller than the two 
  3197. identically shaped triangles in the key frames. The way to 
  3198. minimize this distortion is to insert more key frames, and 
  3199. ensure that objects do not change too much from one key 
  3200. frame to the next.
  3201.  
  3202. An example key frame animation
  3203.  
  3204.     Let us remake our animation of the orbiting cube using
  3205. key frame animation. First clear the Tri-View with EDIT 
  3206. ERASE ALL. If you have been working with a Take, you 
  3207. will be asked if you wish to erase it. Answer OK to this -- 
  3208. nothing will be lost, the Take still exists safely on disk, you 
  3209. are just erasing the copy that is held in memory.
  3210.  
  3211.     Next, add a cube to the Tri-View and click the Expand
  3212. Tri-View gadget until the cube is about one eighth of the size 
  3213. of the Tri-View. Select all the vertices and position the 
  3214. cursor just inside the Down window's bottom edge, in the 
  3215. middle.
  3216.  
  3217.     This will be the animation's center of interest, so execute
  3218. the OBSERVER TARGET command, to place the target.
  3219.  
  3220.     We will be flying the cube around the target in a circular
  3221. path, so we must set the observer where it can see the action.
  3222. Expand the Tri-View again, this time until the distance from 
  3223. the target to the cube is about one eighth of the Tri-View's 
  3224. width, and place the cursor at the bottom of the Down 
  3225. window. Go to the North window and move the cursor up 
  3226. by about one third of the height of the Tri-View. Execute the
  3227. command OBSERVER LOCATION.
  3228.  
  3229.     Place the cursor on the target -- this will require moving it
  3230. in two windows.  Next click on the Center Tri-View gadget, 
  3231. then click Shrink Tri-View until the cube is just about to 
  3232. leave the Tri-View.
  3233.  
  3234.     When you 'zoom in' with Shrink Tri-View, the cursor
  3235. and target might seem to drift apart. This is because
  3236.  
  3237.                                                                         11-18
  3238.  
  3239. shrinking the Tri-View increases its resolution, making a 
  3240. small error in placement seem larger. If this happens, just 
  3241. move the cursor back to the target again.
  3242.  
  3243.     Now we are ready to set the cube in motion. Execute
  3244. PROJECT LOAD TAKE to name a new take (try 
  3245. 'key_frame'), then call up the MODIFY TAKE requester and 
  3246. enter 36 as the number of frames in the global mode. 
  3247. Remember that you need to click in the box, change the 
  3248. number, and press the return key to enter the new value.
  3249.  
  3250.     Since our cube is to fly around a full circle of 36 frames,
  3251. it must move 10 degrees per frame. Let's make every fourth 
  3252. frame a key frame. Click on the Take mode gadget so that it 
  3253. becomes FRAME. Click on the film strip gadget for frame 
  3254. number 1 and click on the Key frame box so that it changes 
  3255. from NO to YES. A letter 'K' will appear in the first frame
  3256. of the film strip image to indicate that this is a key frame. 
  3257. Now click on the fifth frame and again click on the Key 
  3258. frame box. Repeat the process until frames 1, 5, 9, 13, 17, 
  3259. 21, 25, 29, 33 and 36 are all key frames.
  3260.  
  3261.     It doesn't take a mathematician to see that 36 is only the
  3262. third frame past 33, but there's a good reason for this
  3263. inconsistency. To see why, recall that in the global 
  3264. animation we also used 36 frames. The circular path 
  3265. naturally had a 10 degree arc between vertices. Of course, 
  3266. one of these arcs was the one linking frame 36 and frame 1. 
  3267. This arc had its effect when the animation looped, making a 
  3268. smooth transition from one cycle to the next. Our key 
  3269. frames don't specifically account for this last 10 degrees, but 
  3270. if we just leave off 10 degrees 'short' at frame 36, 
  3271. everything will work when the animation loops. Honest!
  3272.  
  3273.     Examples are for doing, so let's create the scenes. Click
  3274. on the first frame in the film strip gadget, then click on the 
  3275. SAVE KEY FRAME SCENE button. This saves the scene 
  3276. in the Tri-View as the first key frame. Now we must 
  3277. construct the next key frame scene, which is frame 5. Click 
  3278. on the OK gadget in order to leave the requester.
  3279.  
  3280.                                                                         11-19
  3281.  
  3282.     Back in the Tri-View, make sure that the cursor is lined
  3283. up over the target, and that the cube is visible near the top of
  3284. the down window. We need to rotate the cube around the 
  3285. target in a clockwise direction by 40 degrees. You can either 
  3286. click on the clockwise rotation gadget in the Down window 
  3287. 8 times, or click on it once with the right Amiga key held 
  3288. down (for a 45 degree rotation) and then click the counter-
  3289. clockwise gadget in the Down window once (to back up by 
  3290. five degrees).
  3291.  
  3292.     Return to the Modify Take requester with an EDIT
  3293. MODIFY TAKE command. Click on the image for frame 
  3294. number 5 and press the button SAVE KEY FRAME SCENE.
  3295.  
  3296.     Repeat this process for each frame, rotating the cube
  3297. around the target and saving the key frame scene. 
  3298. Remember we need to leave frame 36 short by 10 degrees, 
  3299. so only rotate the cube 30 degrees (6 clicks) for this frame.
  3300.  
  3301.     Once you have saved all the key frames, all you need to
  3302. do to see your handiwork is toggle to the GLOBAL mode 
  3303. and click PREVIEW.
  3304.  
  3305. Global vs. Key frame
  3306.  
  3307.     If you have followed through with this chapter's two
  3308. less-than-exciting animations, you may have noticed a 
  3309. couple of differences. The circular motion in the global 
  3310. animation looks smoother than that of the key frame 
  3311. animation. This is because, due to in-betweening, the actual 
  3312. path of the cube in the key frame was a nonogon, or nine 
  3313. sided figure, while in the global animation it was a 36 sided
  3314. figure, which is much closer to a circle. Take care, when 
  3315. using key frame animation, that the interval between key 
  3316. frames is not too large, or motions may become 
  3317. unacceptably jerky.
  3318.  
  3319.     The other difference is more obvious. In the key frame
  3320. animation, the cube can be rotated so as to keep the same 
  3321. face towards the center of the orbit, like the moon does to the
  3322.  
  3323.                                                                         11-20
  3324.  
  3325. earth, while the cube in the global animation did not rotate at
  3326. all.
  3327.  
  3328.     To make the cube rotate in the global animation, you
  3329. must rotate the tumble axes. To see how, do an ERASE 
  3330. ALL to clear out the key frame Take, then call PROJECT 
  3331. LOAD TAKE. This time, find the name you gave the global 
  3332. example then double-click that name in the list of files.
  3333.  
  3334.     Invoke the Modify Take requester and click on the
  3335. LOAD GLOBAL SCENE box. Now leave the requester and 
  3336. point the cursor at the most easterly vertex on the circle and
  3337. execute the command EDIT MODIFY INDICATED 
  3338. TUMBLE. Move the requester so that you can see the down 
  3339. window. Click on the Method box, so that it changes from
  3340. INTERPOLATED to SPECIFIED.
  3341.  
  3342.     This will do for the first vertex. Now click the NEXT
  3343. button four times and move the tumble axes around the 
  3344. orbit. Click the Method box to set the value to SPECIFIED. 
  3345. Rotate the tumble axis by 40 degrees, and the white tumble 
  3346. axis will move to become tangent to the circle again.
  3347.  
  3348.     Continue around the circle in this fashion, setting the
  3349. tumble axes appropriately for every fourth vertex. As you 
  3350. proceed, of course, the interpolation mechanism will be 
  3351. trying to help, so use the MATCH LAST gadget before 
  3352. setting each vertex. This ensures that you rotate its axes 
  3353. exactly 40 degrees. For most 'spinning' paths, a setting is 
  3354. needed every 30-45 degrees for interpolation to be smooth.
  3355.  
  3356.     You can probably see that each of these types of
  3357. animation has its own strengths. Global animation is able to
  3358. describe smooth, flowing motions with complicated 
  3359. tumbling, free of key frame distortion. On the other hand, 
  3360. key framing allows things that global animation doesn't, 
  3361. such as changing an object's shape or color, and its an easy 
  3362. way to describe simple point-to-point motion.
  3363.  
  3364.     Most people will 'take' one method or the other at
  3365. first. This is fine, explore the one that makes the most sense 
  3366. to you right now. The other will wait patiently until you've
  3367.  
  3368.                                                                         11-21
  3369.  
  3370. gained confidence. Eventually you will be able to pick the 
  3371. one that best suits whatever object or motion you have in
  3372. mind.
  3373.  
  3374. RAM animation
  3375.  
  3376.     So far, all of the animations you have done were WIRE
  3377. FRAME previews. These two-color images are small 
  3378. enough in memory that they can be stored directly in RAM 
  3379. and 'page-flipped' to the screen for animation. We've seen 
  3380. that Sculpt Animate can create much more beautiful images 
  3381. than these, in full color and much higher resolution. The 
  3382. more impressive images have a cost, though, in the amount 
  3383. of data they contain.
  3384.  
  3385.     An image rendered in HI-RES, INTERLACE,
  3386. PAINTING, for instance, can take over 16 times the 
  3387. memory that a preview image does. Typically, color images 
  3388. occupy between 50,000 and 100,000 bytes. To show a
  3389. single second of animation, then, involves moving about 2
  3390. megabytes of data into the Amiga's 'chip' graphics RAM
  3391. every second. This data rate is more than the Amiga's 
  3392. processor can handle, even if the whole animation could be 
  3393. loaded into expansion memory and copied from there.
  3394.  
  3395.     Fortunately, in most cases, not all of the image data
  3396. needs to be moved. One frame in an animation is usually 
  3397. very similar to its predecessor, so only the differences 
  3398. between the frames need to be changed. This technique was 
  3399. used to produce the Juggler demonstration in 1986, and has 
  3400. since become known as 'delta' compression. (The Greek 
  3401. letter delta is often used to symbolize change or 
  3402. displacement.) The data describing the changes from one 
  3403. frame to another is called 'delta data'.
  3404.  
  3405.     In delta compression, an animation is reduced to an
  3406. initial image plus a series of data chunks that can be used to
  3407. reproduce each subsequent image by altering the current one. 
  3408. A standard file format, called the ANIM format, has been 
  3409. suggested for animation files. Sculpt Animate employs 
  3410. a variation of this format called J-type animation. At this
  3411.  
  3412.                                                                         11-22
  3413.  
  3414. writing, at least three other ANIM formats are in use. A 
  3415. format converter for use with Sculpt Animate anim files is 
  3416. pending.
  3417.  
  3418.     RAM animation is not without its drawbacks. Because
  3419. two consecutive images are compared on a pixel by pixel 
  3420. basis, some animations may not be amenable to delta 
  3421. compression. The problem occurs if a very large part of the 
  3422. image changes from one frame to the next, as when large 
  3423. objects pass very close to the camera.
  3424.  
  3425.     Even more extreme cases are when the observer's
  3426. location or target are moved, the observer lens's focal length 
  3427. is changed, or lamps are moved. These are advanced 
  3428. techniques that will be discussed in the next chapter. Each 
  3429. of them virtually guarantees that nearly every pixel of the 
  3430. image will change. Since some overhead is involved in 
  3431. compression, this can lead to 'compressed' anim files that 
  3432. are larger than the original image date.
  3433.  
  3434.     Too much motion will not only cause extremely large
  3435. anim files. It also slows animation playback, since it 
  3436. increases the amount of data that must be moved by the 
  3437. processor. In a typical application, if you do not achieve a
  3438. compression ratio of at least three-to-one between the image 
  3439. size and the delta data, the animation is unlikely to replay at 
  3440. the desirable rate of two jiffies per frame (25 or 30 frames 
  3441. per second).
  3442.  
  3443.     The other obvious restriction for RAM animations is that
  3444. the amount of memory on your machine limits the total 
  3445. duration of the animation. If each image is moderately 
  3446. different from the next, you can expect to play about three 
  3447. seconds of animation for each megabyte of available 
  3448. memory. If only small portions of an image are changing, 
  3449. the duration could be as long as 30 seconds per megabyte.
  3450.  
  3451.     The apparent length of an animation can be increased by
  3452. designing it in such a way that it repeats itself in a short 
  3453. length of time. Such looping animations are obviously less
  3454. interesting than a full length feature film, nevertheless,
  3455. impressive animation demos have been made in this way.
  3456.  
  3457.                                                                         11-23
  3458.  
  3459.     You need not restrict yourself to a single object moving
  3460. in a circle. For example, you could produce a scene of a 
  3461. column of troops marching along a twisting road. In the 
  3462. time that it takes one figure to march the distance between 
  3463. himself and the person in front of him, the scene can be 
  3464. made to exactly repeat itself. An animation can also be 
  3465. extended by carefully placing pauses in the action, in the 
  3466. form of particular frames with long duration values. 
  3467. Although RAM animation does not impose some severe 
  3468. restrictions, there is no limit to the creativity that can be
  3469. applied to this new art form.
  3470.  
  3471.     RAM animations serve two purposes. As a stand alone
  3472. end product they may be acceptable for short animations, a 
  3473. spinning logo for a commercial, for example. Alternatively, 
  3474. short animation Takes may be assembled into longer 
  3475. sequences by combining them on video tape using standard 
  3476. videotape editing techniques. This probably represents the 
  3477. most cost-effective approach to computer generated video
  3478. animations.
  3479.  
  3480. Making a RAM animation
  3481.  
  3482.     The button marked RENDER ALL in the GLOBAL
  3483. mode of the MODIFY TAKE requester starts the rendering. 
  3484. The preparation required for this process is essentially 
  3485. identical to that for a preview, but there are a few additional
  3486. items that need to be attended to.
  3487.  
  3488.     First, you obviously need to consider color, texture, and
  3489. lighting in preparing your animation. The examples created 
  3490. so far didn't even have any lamps, you should place at least 
  3491. one in the global scene. Everything you have learned about 
  3492. creating good images applies here. Don't fail to try a few 
  3493. test shots with the faster modes and sizes before committing 
  3494. to the full render. Look for good color, lighting, and 
  3495. composition. Remember, though, that the fancier textures
  3496. look pretty bad in SKETCH and PAINTING; take this into 
  3497. account.
  3498.  
  3499.                                                                         11-24
  3500.  
  3501.     You will also need to remember to set the imaging mode
  3502. and size for your animation. These settings are taken 
  3503. automatically from the last scene saved with either SAVE 
  3504. KEY FRAME SCENE or SAVE GLOBAL SCENE.
  3505.  
  3506.     An animation may consist of dozens or even hundreds of
  3507. images, and take days to render. Because of this, be sure to 
  3508. render a few test images here and there throughout the 
  3509. animation, using the RENDER FRAME button in the 
  3510. FRAME mode of MODIFY TAKE. This command will 
  3511. render the frame's image in the current imaging mode, as 
  3512. discussed before, and then save the data to disk.
  3513.  
  3514.     Finally, it is a good idea to click DELETE ALL IMAGES
  3515. before starting a full render. If you have used RENDER 
  3516. FRAME in setting up you animation, then some undesirable 
  3517. images may remain on disk. These will not be re-rendered. 
  3518. Also, the color map and imaging mode may have been 
  3519. 'locked'. The meaning of this will be explained in the next
  3520. chapter, but for now just remember that DELETE ALL 
  3521. IMAGES resets the Take and makes it ready to start a new 
  3522. render.
  3523.  
  3524.     If you are sure that the color map and imaging mode are
  3525. OK then you can skip the DELETE ALL IMAGES. This 
  3526. avoids having to render those images twice. If you want to 
  3527. delete one image, but not all of them, use DELETE 
  3528. CURRENT IMAGE in the FRAME mode.
  3529.  
  3530.     When you finally click RENDER ALL, a process will
  3531. begin that closely resembles the PREVIEW render, with a 
  3532. few exceptions. We will look at this process as it would 
  3533. occur normally, with the GLOBAL mode controls (except 
  3534. number of frames) set to their defaults. We'll discuss 
  3535. variations in the next chapter.
  3536.  
  3537.     First, Sculpt Animate will go through the animation
  3538. frame by frame, rendering all the images. These images will 
  3539. be saved out to disk individually, by default in the same 
  3540. directory that was specified in the LOAD TAKE requester. 
  3541. Unless the animation is fairly small in size, you will need a
  3542.  
  3543.                                                                         11-25
  3544.  
  3545. hard disk to handle all this data en masse. Alternatives for 
  3546. floppy disk users are discussed in the next chapter.
  3547.  
  3548.     Once all the images have been rendered, Sculpt Animate
  3549. will again proceed through the animation. This time it will 
  3550. go through leapfrog fashion, finding the differences between
  3551. alternating pairs of images. It starts as you might expect 
  3552. with frames 1 and 2, but then it goes to 1 & 3, 2 & 4, etc. The
  3553. images are compressed this way to facilitate 'double-
  3554. buffered' playback. Double buffering keeps two images in 
  3555. memory for the best possible speed, one is updated while the 
  3556. other is displayed.
  3557.  
  3558.     As each delta is found, it is written out to the animation
  3559. load file, or 'anim' file. This file will contain the complete
  3560. compressed animation, ready to be loaded and played back. 
  3561. The anim file is also saved to the Take directory by default.
  3562. Consult the next chapter if this is not desired.
  3563.  
  3564.     The compression phase can be quite lengthy, since the
  3565. compression scheme was designed for greatest compression
  3566. and fastest playback speed, not shortest compression time. 
  3567. You can use a much faster compression scheme by clicking 
  3568. MODIFY TAKE's RAM animation gadget from YES to 
  3569. ECONOMY, its second state. ECONOMY compression is 
  3570. much faster in calculation, but generally creates larger anim 
  3571. files that may not play as fast.
  3572.  
  3573.     When the animation render is finished, you can click OK
  3574. to get back to the Tri-View. If you have to interrupt the 
  3575. render (by pressing CTRL-C), or if it is stopped for any 
  3576. other reason, any images that have been saved will still be
  3577. present, and will not need to be re-rendered. When you 
  3578. click RENDER ALL again, the render will pick up where it 
  3579. left off. If the compression phase is interrupted, it will start
  3580. again at the beginning.
  3581.  
  3582. Playing a RAM animation
  3583.  
  3584.     Before an animation can be displayed, it must be loaded
  3585. into memory. This is done with the command PROJECT
  3586.  
  3587.                                                                         11-26
  3588.  
  3589. LOAD ANIMATION. A familiar looking file requester will 
  3590. enable you to select which animation you wish to play. 
  3591. Having loaded the animation, it can be displayed with the 
  3592. command PROJECT SHOW ANIMATION. The animation 
  3593. can be stopped by clicking with the right mouse button or by
  3594. pressing the ESC key. The speed can be changed in the same 
  3595. way that the speed of a preview is changed.
  3596.  
  3597.     After stopping an animation, it remains in memory so
  3598. that it can be replayed without having to be reloaded. Use 
  3599. the command PROJECT UNLOAD ANIMATION to make 
  3600. the memory available for other purposes.
  3601.  
  3602.     One imaging mode, HI-RES INTERLACE (non HAM),
  3603. requires more chip memory for playback, in the larger image 
  3604. sizes, than is available in the Amiga while Sculpt Animate is
  3605. running. If Sculpt Animate won't play an animation, this 
  3606. may be why. The freely distributable Movie program, 
  3607. included on one of your distribution disks, can play any 
  3608. Sculpt Animate animation.
  3609.  
  3610.                                                                         11-27
  3611.  
  3612.                                 CHAPTER 12
  3613.  
  3614.                       ADVANCED ANIMATION TECHNIQUES
  3615.  
  3616.     The last chapter walked you through the basics of
  3617. animating scenes with Sculpt Animate. The discussion has 
  3618. focused on the simplest conditions, leaving many of the 
  3619. available options in their 'default' state. This chapter 
  3620. describes these additional options, which you can use as you 
  3621. gain confidence in creating animations.
  3622.  
  3623.         Also in this chapter are sections which introduce some
  3624. advanced animation techniques.
  3625.  
  3626. Loop mode
  3627.  
  3628.     One of the options we have ignored is provided by the
  3629. MODIFY TAKE gadget marked 'Loop mode:'. This option only 
  3630. applies to RAM animation and PREVIEW renders. For 
  3631. other animation types the gadget will not be visible.
  3632.  
  3633.     The default setting for this gadget is LOOP. We have
  3634. already seen this mode in action. In it, the animation starts 
  3635. over again after the last frame is displayed. We have also 
  3636. seen that the last and first frames should usually not be
  3637. identical, otherwise the motion will seem to pause for an 
  3638. extra frame when the animation loops. A five frame 
  3639. animation would loop as 1, 2, 3, 4, 5, 1, 2, 3, etc. When 
  3640. LOOP is in effect, RAM compression will not stop at the last
  3641. frames, since deltas must be calculated to carry the animation
  3642. through to frames 1 and 2.
  3643.  
  3644.     An alternative way of producing an animation is to have
  3645. it replay in the form of an oscillation. Set the loop mode 
  3646. gadget to OSCILLATE before rendering the animation. A 
  3647. five frame oscillating animation will play the frames in the
  3648. following order: 1, 2, 3, 4, 5, 4, 3, 2, 1, 2, 3, etc.
  3649.  
  3650.                                                                         12-1
  3651.  
  3652.     If the loop mode gadget is set to NONE, then the
  3653. animation will simply play to the end and then stop.
  3654.  
  3655. Frame duration
  3656.  
  3657.     We have already mentioned frame duration, but it is
  3658. important enough that it deserves a fuller explanation.
  3659.  
  3660.     The 'duration' of a frame is the time, in jiffies, that that
  3661. frame's image will be displayed during playback. The 
  3662. duration might actually be longer than what you set, since 
  3663. some animations can be too complex to play back at full 
  3664. speed.
  3665.  
  3666.     The definition of 'jiffy' can vary, depending on where
  3667. you live. In the United States and Japan the video standard 
  3668. is NTSC, which displays each image as two interleaved 
  3669. fields, at 60 fields per second, so an NTSC jiffy is 1/60th of 
  3670. a second. In Europe, Australia, and elsewhere, the video 
  3671. standard is PAL. A PAL video jiffy is 1/50th of a second.
  3672.  
  3673.     If the images are being sent to a single frame controller
  3674. (explained later in this chapter), then the set duration for each
  3675. frame will be passed to the driver. The frame controller 
  3676. driver must decide how to interpret this value; for instance, a
  3677. video frame controller might record a field for every jiffy, 
  3678. a film recorder might do otherwise. The driver's 
  3679. documentation should explain how it uses this data.
  3680.  
  3681.     When you first call up the FRAME mode of the
  3682. MODIFY TAKE requester, you will see that the duration of 
  3683. frame one is shown as zero. When a frame's duration is set 
  3684. to zero, this has a special meaning. The duration actually 
  3685. used will be the same as that used for the frame before; for 
  3686. frame one, this duration is assumed to be two. Since the 
  3687. durations for a take are all initialized to zero, the default 
  3688. frame duration for the whole animation is two jiffies, or 
  3689. 1/30th of a second  in NTSC.
  3690.  
  3691.     If you click to subsequent frames, you will see that
  3692. the duration is shown as '(2)'. The parentheses show that this
  3693.  
  3694.                                                                         12-2
  3695.  
  3696. is a derived value. When you click back to frame one, its 
  3697. duration is now shown this way, too.
  3698.  
  3699.     This odd behavior allows you to set the duration for a
  3700. large number of frames at once. If you click in the duration 
  3701. box and delete the old value (be sure to delete parentheses, 
  3702. too), then you can type in a new number. This number will 
  3703. take effect for this frame, and all subsequent frames that 
  3704. have not been set otherwise.
  3705.  
  3706.     One note of caution: If you want to set a unique duration
  3707. for a frame somewhere in the middle of the animation, you 
  3708. will need to set the next frame's duration back to the default.
  3709. Otherwise the rest of the animation would take on the new 
  3710. value.
  3711.  
  3712.     Frame duration is directly linked to both the apparent
  3713. smoothness and the playing time of the animation. In 
  3714. NTSC, a 30 frame animation will last only one second at 
  3715. two jiffies per frame.
  3716.  
  3717.     You will find that two jiffies is a very short time. Path
  3718. motion that is to be played at this rate will probably seem 
  3719. overly fast unless the path used is somewhat densely 
  3720. subdivided. This means more frames overall, and longer 
  3721. rendering time for the animation.
  3722.  
  3723.     If the ultimate goal is a pleasant representation of the
  3724. motion, then the higher rate may be necessary. In this case, 
  3725. it might be wise to stick to the PAINTING or SNAPSHOT 
  3726. modes, and avoid PHOTO if rendering time is critical. 
  3727. Indeed, if motion is the primary subject of the animation, 
  3728. even WIRE FRAME can do very well at conveying this.
  3729.  
  3730.     If a positional representation is all that is desired, and
  3731. stunning imagery is to be the centerpiece of the work, you 
  3732. can specify durations of four or more jiffies and still get the
  3733. point across. This drastically reduces the number of frames, 
  3734. and hence rendering time, at the cost of some jerkiness in the
  3735. motion. With practice, you will learn how to weigh these
  3736. considerations according to your own taste.
  3737.  
  3738.                                                                         12-3
  3739.  
  3740. File name conventions
  3741.  
  3742.     If you use the Amiga's command line interface (CLI),
  3743. you will probably have noticed that Sculpt Animate creates 
  3744. image files with names that end in '.image', and object and 
  3745. scene files that end in '.scene'. This is how the program is 
  3746. able to tell different types of files apart.
  3747.  
  3748.     You will not be surprised to learn that a Take file ends
  3749. in '.take'. The Take file is quite small, because it does not
  3750. actually contain any scenes or date, instead it accesses 
  3751. separate scene and data files.
  3752.  
  3753.     When you name a Take, you are also indirectly naming
  3754. all of its scenes. If the name of the Take is 'xyz', its file 
  3755. name is actually 'xyz.take'. The take's global scene file is
  3756. called 'xyz.g.scene' and the first key frame scene is  
  3757. called 'xyz.scene' and the first key frame scene is called
  3758. 'xyz.1.scene'. If frame 20 is a key frame, its scene would 
  3759. be called 'xyz.20.scene'. When images are generated, they 
  3760. have names that are similar. The name for the image for 
  3761. frame number 20 is 'xyz.20.image'.
  3762.  
  3763.     This simple naming convention is carried out
  3764. automatically, so you don't have to worry about it. When 
  3765. you are using the Amiga's CLI to maintain your directories,
  3766. however, it makes it easier to distinguish between the files of
  3767. various takes. The Amiga's LIST and DELETE commands 
  3768. permit the use of patterns, for instance the command 'LIST p
  3769. xyz.#?' will list every file associated with the Take named 
  3770. 'xyz'.
  3771.  
  3772.     Note that Sculpt Animate does not save '.info' files for
  3773. the file it creates, so they will have no icons on the 
  3774. Workbench screen. Sculpt Animate can easily create 
  3775. hundreds of files on a single directory, so icons would 
  3776. quickly become useless. The '.info' files themselves would
  3777. effectively double the number of files, drastically slowing 
  3778. disk access for some operations.
  3779.  
  3780.     If you haven't done so already, you will find it valuable
  3781. to study your Amiga's CLI documentation before going very 
  3782. far with Sculpt Animate. The definitive source for this
  3783.  
  3784.                                                                         12-4
  3785.  
  3786. information is The AmigaDOS Manual, from Bantam 
  3787. Books, which is available through most bookstores where 
  3788. computer books are sold. This book fully explains the 
  3789. Amiga's file system and CLI. There are also several novice-
  3790. oriented AmigaDOS texts on the market.
  3791.  
  3792. Disk space
  3793.  
  3794.     In the course of generating an animation, you may find
  3795. yourself dealing with many megabytes of data, so a little 
  3796. advance planning is wise. At times, you may need to
  3797. estimate how much disk space each image will take.
  3798.  
  3799.     Sculpt Animate's images are stored in a compressed
  3800. format, which can vary in size from image to image, so you
  3801. will need to check the size of an image from your particular
  3802. animation. To do this, use RENDER FRAME to generate a
  3803. test image before you click RENDER ALL. Try to pick the
  3804. 'busiest' frame--an image with many transitions from one
  3805. color to another will generally use more disk space, and be a
  3806. 'safer' indicator of what's needed.
  3807.  
  3808.     Once RENDER FRAME has saved the image, go back to the
  3809. Workbench screen and the Amiga's CLI window. Use the 
  3810. CD command to change your current directory to the drawer 
  3811. where the image is stored (the same drawer where you 
  3812. opened your Take). Then use the AmigaDOS LIST 
  3813. command to see how many bytes are in the test image.
  3814.  
  3815.     In the Amiga's operating system, disk storage is
  3816. measured in 'blocks' of 512 bytes. Typically, because of 
  3817. system overhead, only 488 bytes will be usable per block. 
  3818. A newly formatted Amiga floppy disk can hold 1751 blocks 
  3819. of data (1758 if the 'noicons' option is used).
  3820.  
  3821.     To see how many blocks are used by your test image,
  3822. divide its number of bytes by 488, round up, and add 1. To 
  3823. see how many images will fit on a floppy, divide the number 
  3824. of blocks into 1751, round down, then subtract one to be 
  3825. safe.
  3826.  
  3827.                                                                         12-5
  3828.  
  3829.     If the floppy is partially full, or you will be using a
  3830. directory on a hard disk or some other device, the CLI 
  3831. "INFO" command will show how many free blocks remain 
  3832. on each device in the system.
  3833.  
  3834. Organizing floppy disks
  3835.  
  3836.     So far, our discussion applies to using Sculpt Animate
  3837. on hard disk systems as well as floppies. While the hard 
  3838. disk is preferable, by far, it is possible to render and 
  3839. compress RAM animations using only floppy disks.
  3840.  
  3841.     The key to this endeavor is the old maxim: a place for
  3842. each thing, and each thing in its place. You will need to find 
  3843. room for the Take and its associated scenes and images, as 
  3844. well as a place for the final animation.
  3845.  
  3846.     Sculpt Animate makes use of 'overlays', segments of
  3847. code that are loaded in at various times, depending on what 
  3848. is being done. This reduces the amount of memory required 
  3849. to run the program, but it means that the program will need 
  3850. to consult its own disk at times during a session. Sculpt 
  3851. Animate also uses code libraries kept on the Workbench 
  3852. disk. To reduce the amount of swapping required, you can 
  3853. 'boot' from your working copy of the Sculpt Animate disk 
  3854. (insert it instead of Workbench).
  3855.  
  3856.     The Take and scenes will usually fit on the floppy disk
  3857. with Sculpt Animate, so they're no problem. If the scene 
  3858. files need to be placed on separate disks, the procedure will 
  3859. be much the same as for image files, which we will discuss 
  3860. in detail.
  3861.  
  3862.     Image files definitely are a problem, since as few as five
  3863. might fill up a disk. A full disk error will bring the 
  3864. rendering process to a grinding halt. The anim file is also a
  3865. problem, but we'll discuss that in a moment.
  3866.  
  3867.     To avoid running out of space while rendering, use the
  3868. last section's formulae to figure out how many of your 
  3869. animation's images will fit on a disk. Before you start the
  3870.  
  3871.                                                                         12-6
  3872.  
  3873. animation, format (initialize) enough disks to hold all of the
  3874. frames' images. Name each of these disks with a short, 
  3875. unique name, like 'images1-5', 'images6-11', etc.
  3876.  
  3877.     Now, how is Sculpt Animate to know which image goes
  3878. on which disk? You are able to specify a disk name 
  3879. in the 'image drawer' gadget of MODIFY TAKE, in the FRAME 
  3880. mode. Select each frame in turn, and type in a disk name for 
  3881. every frame. Use the 'scene drawer' gadget if you need to 
  3882. do this for key frame scenes.
  3883.  
  3884.     Do not type in 'DF0:', or any other device names, into
  3885. these drawer gadgets. This does not give Sculpt Animate 
  3886. any way to ask for the correct disk. Use only the unique 
  3887. volume names of one of the floppies you have formatted. 
  3888. Remember, however, that a disk's volume name must be 
  3889. entered into the gadget with a trailing colon, e.g., 
  3890. 'images1-5:'.
  3891.  
  3892.     The image and scene drawer gadgets work similarly to
  3893. the duration gadget, in that any name you enter will be 
  3894. carried over to any subsequent frames that don't have an 
  3895. image drawer specified. This reduces the amount of typing 
  3896. that has to be done. A derived name (one that is carried 
  3897. over) will be shown in parentheses. Be sure that you erase 
  3898. the parentheses whenever you enter a new value.
  3899.  
  3900.     As Sculpt Animate renders the frames it will ask for the
  3901. next disk by name when the time comes to write an image to 
  3902. that disk.
  3903.  
  3904.     When all the frames have been rendered, Sculpt Animate
  3905. will begin to compress the image data. This is when the 
  3906. anim file must be opened. It is best to have a blank floppy 
  3907. disk dedicated to the anim file, since it can be very large. 
  3908. This disk should be formatted beforehand, and its name 
  3909. entered in the 'animation drawer' gadget of MODIFY 
  3910. TAKE, GLOBAL mode.
  3911.  
  3912.     As the anim file is constructed, Sculpt Animate will again
  3913. ask to see each of the image disks in turn. If you have only 
  3914. one floppy drive, this will undoubtedly incur a painful
  3915.  
  3916.                                                                         12-7
  3917.  
  3918. session of disk swapping, since the anim disk will also be 
  3919. needed for each frame. If you have two floppy drives, you 
  3920. can generally place the anim disk in one drive, then cycle the
  3921. image disks through the other. This avoids much, but not 
  3922. all, of the disk swapping.
  3923.  
  3924.     There is a practical limit to the size of an anim file: about
  3925. 850K. This is the maximum size of any file on an Amiga 
  3926. floppy disk. It is possible that larger animation files may be
  3927. assembled on hard disks, but they must be split into portions 
  3928. to be transported to floppies, public domain split programs 
  3929. exist which will perform this function. The AmigaDOS 
  3930. JOIN function can be used to re-assemble a split anim file.
  3931.  
  3932. Saving images
  3933.  
  3934.     You can reduce a great deal of the trouble of working
  3935. with floppies if you set the 'save images' gadget in the 
  3936. MODIFY TAKE requester to NO.
  3937.  
  3938.     As we have seen, each image of an animation is normally
  3939. saved to disk when it is finished. With save images set to 
  3940. NO, the animation will be compressed as it is rendered. 
  3941. Images will still be written to disk, but the image files will be
  3942. deleted as soon as they are not needed. At most, five images 
  3943. will be retained at one time.
  3944.  
  3945.     The drawback to this kind of animation is that any
  3946. interruption will make it necessary to re-start the entire 
  3947. process from the beginning.
  3948.  
  3949. Color and exposure locking
  3950.  
  3951.     There are two variables in a scene that can cause radical
  3952. changes in the appearance of an image. These are the 
  3953. scene's exposure and the image's color map. both of these 
  3954. items are determined automatically when you render an 
  3955. image with START, and are usually no cause for concern.
  3956.  
  3957.                                                                         12-8
  3958.  
  3959.     If each image were computed with an independent
  3960. automatic exposure value and one object were to move closer
  3961. to a lamp, then the overall brightness of the scene would be
  3962. reduced to prevent 'burn out' of the object near the lamp.
  3963. This would probably be a desirable action except for its
  3964. effect on delta compression. If the overall image is
  3965. darkened, most pixels would differ from one image to the
  3966. next and the efficiency of delta compression would suffer.
  3967.  
  3968.     When Sculpt Animate generates an image without using
  3969. HAM mode, the image is restricted to a color map of 16 or
  3970. 32 colors, depending upon the resolution used. Each color
  3971. is chosen from a palette of 4096 possible colors in such a
  3972. way as to best represent a particular scene. The process of
  3973. delta compression requires that each frame uses the same set
  3974. of 16 or 32 colors. This also applies to HAM images,
  3975. because the 4096 colors that HAM can display must be
  3976. derived from a base color map of only 16.
  3977.  
  3978.     When the first frame of an animation is rendered, Sculpt
  3979. Animate will determine the best color map and exposure for
  3980. that image. These values will then be 'locked' throughout
  3981. the animation.
  3982.  
  3983.     You can have a little control over the color map that will
  3984. be chosen for your animation. If RENDER FRAME is used
  3985. to render the most representative frame of the animation, that
  3986. frame will determine the color map and exposure. If you
  3987. change your mind and want to start from scratch, click the
  3988. DELETE ALL IMAGES button. This resets the locks so
  3989. that the next frame rendered will determine their value.
  3990.  
  3991.     If, for some reason, you want the exposure value to
  3992. change during the course of the animation, you can 'animate'
  3993. the observer's manual exposure setting, saving different
  3994. values for different key frames in the animation. This will
  3995. usually make the compressed RAM animation much larger,
  3996. though. The manual exposure control can also be used to
  3997. change the overall brightness of the animation.
  3998.  
  3999.                                                                         12-9
  4000.  
  4001. Animating the observer
  4002.  
  4003.     Dramatic effects can be achieved by moving the
  4004. observer's location and target during an animation. The 
  4005. visual effects produced this way can be very exciting, even if
  4006. only SKETCH or PAINTING mode is used. Often, more
  4007. information can be conveyed in this way than by using a
  4008. static viewpoint. As with objects, the observer can be
  4009. animated either by key frame animation or by global
  4010. animation.
  4011.  
  4012.     In global animation, the observer's location and target
  4013. must be attached to paths in the global scene's hierarchy.
  4014. The observer's location is called 'LOCATION'. and the
  4015. target is called "TARGET". These are 'special' names in the
  4016. hierarchy, and if they are entered into it they will be labeled
  4017. accordingly.
  4018.  
  4019.     When attached to a path, the location or target will follow
  4020. that path precisely. The location and target should always be
  4021. placed on separate paths, otherwise they would be in
  4022. the same place every frame! The target can be attached to the
  4023. same path as an object, this will cause the observer's view to
  4024. 'track' that object's local origin.
  4025.  
  4026.     Other observer attributes can be animated in key frames,
  4027. as well. Specifically, the lens, exposure, and tilt. Simply
  4028. set these parameters differently in the key frame scenes, and
  4029. they will change smoothly in the animation. As usual, key
  4030. frame animation gives you the maximum creative freedom, at
  4031. the cost of a little extra work.
  4032.  
  4033.     If there are any key frame scenes defined for the
  4034. animation, then the observer will be positioned according to
  4035. those scenes. In this case, the observer's position in the
  4036. global scene will be ignored, unless it is named in the global
  4037. scene's hierarchy.
  4038.  
  4039.                                                                         12-10
  4040.  
  4041.     Even if a static view is being used, this is an important
  4042. fact. If you want to change the observer's location for a
  4043. large key frame animation, you can make the global scene's
  4044. observer 'take precedence', simply by putting the names
  4045. LOCATION and TARGET anywhere in the global scene's
  4046. hierarchy (the highest level will do).
  4047.  
  4048.     The only drawback to animating the observer is that the
  4049. compression ratio for RAM animation is reduced, often
  4050. dramatically, because most of the pixels that make up each 
  4051. image will change from frame to frame. This may be of less
  4052. concern if you have a hard disk or other enormous storage
  4053. medium.
  4054.  
  4055.     When such drastic differences exist between frames, the
  4056. benefit of normal RAM animation compression is reduced.
  4057. In this case, you might as well click the RAM animation
  4058. gadget to ECONOMY to speed things up.
  4059.  
  4060.     When the compression efficiency is reduced, of course,
  4061. the animation playback speed will suffer as well, since the
  4062. processor will have that much more data to move between 
  4063. frames.
  4064.  
  4065.     Later in this chapter, you will see how an animation's
  4066. images may be recorded on a professional quality videotape
  4067. recorder. This bypasses any need of RAM animation, and
  4068. all its restrictions.
  4069.  
  4070. Animating lamps
  4071.  
  4072.     The effect of moving lamps in a scene can be equally
  4073. dramatic, although the cost in processing and compression
  4074. can be even higher than that of moving the observer.
  4075. Nonetheless, if the animation is to be finally rendered in
  4076. photo mode, the moving shadows and highlights will give
  4077. the scene an amazing illusion of solidity and reality.
  4078.  
  4079.     In key frame animation, the lamp does not exist in the
  4080. global scene, but is positioned separately in each key frame.
  4081. You can also change the brightness and even the color of
  4082.  
  4083.                                                                         12-11
  4084.  
  4085. each lamp. If multiple lamps are used, then in-betweening
  4086. problems can occur unless you drag lamps with the
  4087. Grabber rather than creating new ones for each scene.
  4088.  
  4089.     In global animation, a lamp may be named and attached
  4090. to a path, just as if it were an object. Use the command
  4091. EDIT NAME INDICATED LAMP to do this.
  4092.  
  4093. Model Animation
  4094.  
  4095.     In the movies, a classic animation technique is to animate
  4096. models. A single picture taken and then the model is
  4097. moved a small amount and a second picture is taken. The 
  4098. process is repeated until a complete animation has been
  4099. assembled.
  4100.  
  4101.     This technique can employ many different types of
  4102. models, frequently the models are rigid but with many
  4103. joined parts that can be set in particular positions.
  4104. Alternatively, a malleable medium like clay can be used,
  4105. which may require more skill but has almost unlimited
  4106. creative potential.
  4107.  
  4108.     In Sculpt Animate, solid models may be built and their
  4109. hierarchical object structure used to help manipulate them.
  4110.  
  4111.     We have already stressed some advantages of creating
  4112. such a model as a collection of parts. For instance, a human
  4113. model could comprise many elements constructed
  4114. individually. A forearm could first be fashioned with the
  4115. spin tool as a tapered cylinder with rounded ends. The 
  4116. expand command could be used to introduce just the right
  4117. degree of asymmetry. Finally, some judicious manipulation
  4118. of individual vertices could add realism.
  4119.  
  4120.     An upper arm could be made in the same manner, and
  4121. the two parts made to overlap in space, so they appear to be
  4122. joined at the elbow. This is often quite adequate. Such
  4123. rigidly 'joined' objects lack the flexibility of skin, however,
  4124. so creases can appear when they are bent and repositioned.
  4125.  
  4126.                                                                         12-12
  4127.  
  4128.     This rigidity can be avoided by connecting the parts with
  4129. faces. This requires a good deal of skill, and not a little bit
  4130. of patience. The trick is to create 'fillets' of face-forming
  4131. edges that link one part with the other. Any vertices within
  4132. the joint that are not part of a visible face may then be erased.
  4133. The vertices on either side of the fillet may be named
  4134. differently, so when the joint moves the faces they form will
  4135. stretch and contract to form a pliable 'skin'. With foresight
  4136. you can arrange things so that the UNSLICE command can
  4137. be used to link the parts.
  4138.  
  4139.     The complete human model could be named in a
  4140. hierarchical manner, as suggested in Chapter 9. It then
  4141. becomes easy to select either a single component or a while
  4142. group of them. By placing the cursor at the location of a 
  4143. joint and using the rotate gadgets, the model can be
  4144. manipulated just like a jointed doll. Although some skill is
  4145. required, the model can be moved to emulate any physical 
  4146. activity, such as walking.
  4147.  
  4148.     The labor of animation is reduced by employing key
  4149. frames. A walking man animation requires fairly frequent
  4150. key frames, say one every four or five frames, but that is
  4151. still much better than having to build every scene.
  4152.  
  4153.     It is a good idea to place curves in the global scene, even
  4154. if you are not performing global animation. These curves act 
  4155. as guides for positioning the model and help to ensure that
  4156. the motion is smooth and fluid. Just as the eye can detect
  4157. irregularities in a hand drawn line, it can also detect
  4158. irregularities in motion.
  4159.  
  4160.     Objects should not normally change their velocity
  4161. instantaneously. Have velocity build up and decrease
  4162. steadily. Remember that velocity is determined by the
  4163. difference in position of a vertex from one frame to the next.
  4164. The greater the difference, the greater the apparent velocity.
  4165.  
  4166.                                                                         12-13
  4167.  
  4168. Object Cycling
  4169.  
  4170.     There is a special feature of the global scene's hierarchy,
  4171. it is able to control the very existence of objects in different
  4172. parts of the animation. This special feature takes place
  4173. whenever an object's name begins with a numerical digit.
  4174. Such names are analyzed as follows:
  4175.  
  4176.     1)    If the name starts off as a number followed by a
  4177.         minus sign followed by a second number, then the
  4178.         vertex is only loaded if the frame number lies in
  4179.         that range. A vertex with the name '17-24apple'
  4180.         will only be loaded into frames 17 to 24.
  4181.  
  4182.     2)    If the name starts with a number followed by
  4183.         a slash and a second number, then the vertex is
  4184.         only loaded for the frame indicated by the first
  4185.         number, and then at intervals indicated by the
  4186.         second number. A vertex with the name
  4187.         '3/5orange' would only be loaded for frames 3, 8,
  4188.         13, 18, etc.
  4189.  
  4190.     3)    If the name starts with a number, but does not
  4191.         satisfy rules 1 and 2 above, then the vertex is only
  4192.         loaded for the frame with that number. The vertex
  4193.         names '17banana' is only loaded for frame 17.
  4194.  
  4195.     These three rules let you perform something called object
  4196. cycling. Suppose that you wish to animate an object that
  4197. moves in a regular manner and repeats the motion many
  4198. times. You can make a composite object that includes all
  4199. possible configurations, and name then so that they are
  4200. selected in turn for successive frames.
  4201.  
  4202.     Suppose that the name Henry is applied to a human
  4203. figure that has eight pairs of legs, each in a different
  4204. position. The first pair of legs has the name Henry+1/8legs,
  4205. the second pair Henry+2/8legs, etc. If this multi-legged
  4206. Henry is placed in the global scene, only the first pair of legs
  4207. will be loaded into the first frame, the second set will be
  4208. loaded into the second frame, and so on.
  4209.  
  4210.                                                                         12-14
  4211.  
  4212.     You may have noticed that this particular Henry moves
  4213. his legs back and forth, but he doesn't actually walk. To 
  4214. make Henry walk, he must be attached to a path. The speed
  4215. along the path should be carefully chosen so that Henry's
  4216. feet do not seem to skid.
  4217.  
  4218. Animated objects
  4219.  
  4220.     Henry is an example of an animated object. He could be
  4221. saved as an object and used for other animations. Just as
  4222. you save interesting still objects for use in other scenes, you
  4223. can also save moving ones. There are many other ways to
  4224. build animated objects. Look at the scenes that are included
  4225. on the disks distributed with Sculpt Animate. Some of them
  4226. contain animated objects, study them to see how they work.
  4227.  
  4228.     Animated objects can be made by attaching objects to
  4229. paths, by object cycling, or by using both techniques
  4230. simultaneously. Let us go through the steps for creating a
  4231. spinning sphere. At first glance, the only way that we could
  4232. build a spinning sphere is by object cycling, but there is a 
  4233. better and much easier way.
  4234.  
  4235.     First build a sphere in the usual way, and then construct
  4236. a hierarchy with a parent called 'spinning' and an offspring
  4237. called 'sphere'. Select each vertex of the sphere and assign
  4238. each vertex to the name 'sphere'. Set the local origin to the
  4239. center of the sphere.
  4240.  
  4241.     Now we must create a path that spins an object without
  4242. moving it. Deselect the sphere and add a circle. Proceed as
  4243. we did with the path named 'orbit' in Chapter 11.
  4244. Remember to rotate the tumble axes around the path, as was
  4245. explained in the 'Global vs. Key frame' section of that
  4246. chapter. Name the path 'spinning'. If we stopped at this
  4247. point, we would have a sphere spinning about an axis, but
  4248. following a circular orbit. To avoid the orbiting motion,
  4249. select the path and shrink it down with the EDIT DO
  4250. EXPAND command. You could keep clicking on the 1/2
  4251. gadget until the path shrank to a single point, but it is better
  4252. simply to make the circle much smaller than the sphere. That
  4253.  
  4254.                                                                         12-15
  4255.  
  4256. way you can still go in and easily modify the tumble axes if
  4257. you need to.
  4258.  
  4259. Backgrounds and foregrounds
  4260.  
  4261.     Although Sculpt Animate can be used to synthesize any
  4262. scene, sometimes it may be desirable to combine renderings
  4263. of three dimensional objects with background or foreground
  4264. images produced by other programs, such as paint
  4265. programs.
  4266.  
  4267.     You can specify background and foreground images in
  4268. the appropriately labeled boxes of the MODIFY TAKE
  4269. requester, GLOBAL mode.
  4270.  
  4271.     These particular gadgets require the complete AmigaDOS
  4272. pathname. Sculpt animate will also assume that the file's
  4273. names has the extension '.image', but do not type this
  4274. extension into the gadget. For example, if your background
  4275. image is named 'clouds.image' and its in the 'images'
  4276. drawer of a disk named 'Stuff', they you will type in
  4277. 'Stuff:images/clouds'.
  4278.  
  4279.     As each image of the animation is rendered, the rendered
  4280. image will be combined with the foreground and background
  4281. images according to some simple rules:
  4282.  
  4283.     1)    Any pixel of a HAM foreground image that is not
  4284.         totally black will be shown in the final image.
  4285.  
  4286.     2)    Any pixel of a non-HAM foreground image that is
  4287.         not color zero will be shown in the final image.
  4288.  
  4289.     3)    If the world's sky is SOLID or GRADUATED, no
  4290.         background image pixels will be visible.
  4291.  
  4292.     4)     If the world's sky is NONE, the background image
  4293.         will replace any part of the sky area that is not
  4294.         blocked by a foreground image.
  4295.  
  4296.                                                                         12-16
  4297.  
  4298.     In other words, the rendered image that will be 'sandwiched'
  4299. between the foreground and background images, with the
  4300. former showing in front.
  4301.  
  4302.     Neither the foreground nor the background will have any
  4303. effect on the rendered imagery itself, or be affected by
  4304. shadows or scene lighting. Mirrored and glass objects will
  4305. look as if they sky were the SOLID color that was set before
  4306. the sky color gadget was toggled to NONE. The solid-sky
  4307. color is remembered, even though it is inactive otherwise.
  4308.  
  4309.     The foreground and background images may be any
  4310. standard IFF files, including HAM images. Their image size
  4311. and mode should not differ from the scene's settings. Sculpt
  4312. animate will attempt to resolve any such differences, but it
  4313. could significantly increase rendering time. Pixel
  4314. dimensions for Sculpt Animate's various sizes and
  4315. resolutions are listed in Chapter 3.
  4316.  
  4317.     If you must use a background image that differs in size
  4318. or mode from your animation, you can avoid having it
  4319. 'fitted' to your scene more than once. To do this, render a
  4320. one-frame animation in the size and mode you want, using
  4321. the desired image as a background for a totally empty global
  4322. scene, with no sky or ground. You can use the resulting
  4323. corrected image as your background in the full animation.
  4324.  
  4325.     This suggests that background images can be generated
  4326. entirely with Sculpt Animate. In this way, distant objects
  4327. that do not move need only be rendered once. For
  4328. complicated scenes, this could represent a substantial time
  4329. saving when making a long animation.
  4330.  
  4331.     The foreground image can also portray objects as though
  4332. they were within the scene. Suppose all of an animation's
  4333. action takes place near the center of the screen, but which
  4334. has complicated objects in the foreground or to either side of
  4335. the action. As long as no shadows or reflections depend on
  4336. these objects, you could render an image of them with no
  4337. sky or ground, and use that image as a foreground for the
  4338. full animation. Leaving these objects out of the full
  4339. animation can reduce the total amount of rendering time.
  4340.  
  4341.                                                                         12-17
  4342.  
  4343.     In the ray trace modes, some time savings could be
  4344. realized by rendering one image of an animation, and
  4345. 'blacking out' the area of motion with a HAM paint
  4346. program. The foreground pixels will usually be faster to
  4347. render than a full ray trace of the same pixel, even if all the
  4348. objects are still in the scene. Of course, the restrictions to
  4349. movement and shadows still apply.
  4350.  
  4351. Motion blurring
  4352.  
  4353.     When an animation has rapidly moving objects, each
  4354. image is sharply defined and the eye perceives the motion as
  4355. jerky rather than smooth, even at a frame rate of 30 frames
  4356. per second. A comparable film image would appear smooth
  4357. because each individual frame is slightly blurred.
  4358.  
  4359.     This blurring can be simulated in software by turning on
  4360. the Motion blur switch prior to rendering a Take.
  4361. Animations will take longer to produce, and because the
  4362. blurring is achieved by blending together adjacent images,
  4363. very rapidly moving objects will not have a correctly blurred
  4364. image, so some jerkiness will remain.
  4365.  
  4366. Single frame controllers
  4367.  
  4368.     The restrictions associated with RAM animations can be
  4369. avoided if each frame is directly recorded on a video tape
  4370. recorder, one frame at a time. Unfortunately, most
  4371. consumer grade recorders are not able to cleanly record one
  4372. frame at a time, so this technique is currently limited to the
  4373. video professional.
  4374.  
  4375.     If you plan to purchase a recorder and intend to use it fo
  4376. single frame recording, look for a recorder with 'flying erase
  4377. heads', and make sure it can record single frames cleanly at
  4378. the exact location you desire, without skipping or the image
  4379. breaking up. Naturally, there must be some mechanism for
  4380. controlling this.
  4381.  
  4382.                                                                         12-18
  4383.  
  4384.     Although some recorders can be operated manually to
  4385. record single frames, it is preferable to use special hardware
  4386. called a single frame controller, to act as an interface between
  4387. the Amiga and the recorder. Sculpt Animate is designed to 
  4388. work with a special piece of software called a driver in order
  4389. to communicate with a single frame controller.
  4390.  
  4391.     A custom driver will have to be written for any particular
  4392. controller hardware, but only the driver must be changed.
  4393. Sculpt Animate itself can operate any controller device for
  4394. which a driver has been written.
  4395.  
  4396.     To use a single frame controller, you must set the RAM
  4397. animation gadget to NO. Two new gadgets will appear in
  4398. the Modify Take requester. One is called 'Frame controller'
  4399. and the other is called 'Frame buffer'. If you click on one of 
  4400. these gadgets it will toggle to YES and a file requester will
  4401. pop up and ask you to choose from among the appropriate
  4402. drivers that are present in the system 'DEVS:' directory.
  4403.  
  4404.     Generating an animation to a frame controller is almost
  4405. the same as for RAM animation; click RENDER ALL to
  4406. begin. The images will be sent to the controller in the same
  4407. way they would be compressed, either as rendered or all at
  4408. once afterwards, depending on the state of the 'save images'
  4409. gadget.
  4410.  
  4411. Frame buffers
  4412.  
  4413.     A frame buffer is a piece of hardware that generates an
  4414. image independently of the Amiga's graphics hardware.
  4415. Depending upon the design, it may generate a higher
  4416. resolution image than the Amiga, or it may display more than
  4417. 4096 colors, or both. Using a frame buffer can result in
  4418. better quality images than could be produced by the Amiga's
  4419. internal graphics hardware.
  4420.  
  4421.     The frame buffer is accessed by means of a driver similar
  4422. to the driver for a single frame controller. Its installation and
  4423. use must be described by the driver's documentation.
  4424.  
  4425.                                                                         12-19
  4426.  
  4427.     To select a frame buffer driver, click on the Frame buffer
  4428. gadget to change it from NO to YES, and then select the
  4429. driver using the file requester that will pop up.
  4430.  
  4431.     Sculpt Animate will interrogate the driver to determine
  4432. what size image is required, and other properties pertaining
  4433. to the frame buffer. No other special action is required,
  4434. although when rendering is started, the Amiga display may
  4435. or may not show the images as they are generated.
  4436.  
  4437.     If the 'save images' gadget is set to YES, the images will
  4438. be saved to disk in a compressed format similar to IFF's 
  4439. ILBM. The format used is not IFF compatible, however, 
  4440. because it will usually exceed ILBM's maximum resolution.
  4441.  
  4442. Connecting up the hardware
  4443.  
  4444.     As with any other hardware, carefully follow the
  4445. directions that are supplied. A typical setup has an Amiga, a
  4446. professional videotape recorder (VTR), a single frame
  4447. controller, and a frame buffer.
  4448.  
  4449.     The VTR will have some form of control hook-up
  4450. connected to the frame controller, which in turn will be
  4451. connected to the Amiga, probably through the serial or
  4452. parallel port. This is the control link.
  4453.  
  4454.     The VTR must also have video input, this can come
  4455. directly from the Amiga's composite output, from an NTSC
  4456. encoder or GenLock connected to the Amiga's RGB output,
  4457. or from a frame buffer connected to the Amiga's expansion
  4458. bus.
  4459.  
  4460.     In a typical animation recording session, the program
  4461. will display each image, either on the Amiga's display or by
  4462. passing it to a frame buffer driver, and then signal the frame
  4463. controller that the image is ready. This is repeated until
  4464. every frame is recorded.
  4465.  
  4466.     There is a vast amount of video hardware on the market
  4467. right not, and very little of it is truly suitable for single
  4468.  
  4469.                                                                         12-20
  4470.